首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将KMS加密的.enc文件存储/从kubernetes秘密中检索

如何将KMS加密的.enc文件存储/从kubernetes秘密中检索
EN

Stack Overflow用户
提问于 2019-11-06 16:26:00
回答 1查看 360关注 0票数 0

我有一个由GCP密钥加密的.enc文件。我把这个加密文件存储在kubernetes中作为一个秘密。Kubernetes集群具有访问KMS密钥的权限。现在,我想在容器运行时使用密钥解密存储的加密文件。我的服务是用python写的。如何使用python脚本解密存储的加密文件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-06 16:50:13

我想你可能在这里混淆了两个概念。如果使用GKE应用层加密,集群需要IAM权限才能与KMS对话。作为用户,你从不直接加密秘密。例如,当您运行kubectl create secret时,GKE将在将其保存到etcd之前自动加密它。当您请求该秘密时,GKE将自动解密它。

如果您想加密带外的秘密,您的Kubernetes集群不应该拥有使用KMS密钥的权限。无论是库伯内特斯还是埃特cd,都不会看到这个明文的秘密。您可以在计算机上对其进行本地加密,并将加密的数据保存为Kubernetes中的一个秘密。当您想要检索明文时,您的pod/服务将需要请求Kubernetes秘密,然后对Cloud进行必要的API调用以解密该秘密。下面是一些可以解密秘密的Python示例代码:

代码语言:javascript
复制
def decrypt(client, s):
    if not s:
        raise ValueError('ciphertext is missing')

    response = client \
        .projects() \
        .locations() \
        .keyRings() \
        .cryptoKeys() \
        .decrypt(name=crypto_key_id, body={"ciphertext":s}) \
        .execute()

    return base64.b64decode(response['plaintext']).decode('utf-8').strip()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58734586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档