7 个版本
0.3.7 | 2020 年 7 月 24 日 |
---|---|
0.3.6 | 2020 年 7 月 18 日 |
0.3.1 | 2020 年 6 月 30 日 |
#19 in #kms
每月 31 次下载
在 encrypt-rs 中使用
125KB
2.5K SLoC
Google Cloud KMS 的 SecretKeeper 实现
CloudKMS SecretKeeper URI 的格式为 cloudkms://PROJECT/LOCATION/KEYRING/KEY
,其中
PROJECT
是 Google Cloud KMS 项目LOCATION
是云位置;使用 'global' 表示所有数据中心/区域KEYRING
- 您的密钥库名称KEY
- 您的密钥名称
您必须设置环境变量 GOOGLE_APPLICATION_CREDENTIALS
为凭证 json 文件的路径(例如,用于服务帐户)。
先决条件
- 一个 Google Cloud 账户,您的项目已启用 Cloud KMS API
- 一个授权用户或服务帐户,已启用以下角色
- Cloud KMS CryptoKey Encrypter/Decrypter
- 环境变量
GOOGLE_APPLICATION_CREDENTIALS
设置为授权帐户的 json 凭证文件路径。 - 已安装 Google Cloud SDK 工具(以下示例需要
gcloud
)
创建密钥库和密钥(如果需要)
您可以使用现有的密钥库和密钥,或者创建一个新的。您需要知道可用区的名称,或者使用 global
表示所有区域。
- 要创建名为
my_keyring
的密钥库,
gcloud kms keyrings create "my_keyring" --location global
- 要创建密钥
my_key
,该密钥位于my_keyring
密钥库中,
gcloud kms keys create my_key --keyring my_keyring --location global \
--purpose encryption-decryption
使用此保管库
保管库 URI 的格式为 cloudkms:/PROJECT/LOCATION/KEYRING/KEY
,因此,我们新密钥库和密钥的 URI 为 cloudkms:/PROJECT/global/my_keyring/key
,
您可以使用 examples/encrypt-rs 命令行程序进行测试。要将 FILE
加密到 FILE.ENC
,请使用
encrypt enc -o FILE.ENC -k cloudkms:/PROJECT/global/my_keyring/my_key FILE
要解密,请使用
encrypt dec -o FILE.DUP -k cloudkms:/PROJECT/global/my_keyring/my_key FILE.ENC
使用默认参数,这将使用LZ4XChaCha20-Poly1305压缩密钥对文件进行加密,使用新生成的256位密钥,在Google CloudKMS上使用my_keyring/my_key
加密该密钥,并将加密后的密钥存储在FILE.ENC的头部。
依赖项
~60MB
~1M SLoC