首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何确保我对秘密的检索是安全的?

如何确保我对秘密的检索是安全的?
EN

Stack Overflow用户
提问于 2020-12-25 18:55:45
回答 3查看 430关注 0票数 2

目前,我正在使用Terraform和Aws秘密管理器来存储和检索秘密,我想了解一下我的实现是否安全,如果不是,我如何使它更安全。让我用我尝试过的东西来说明一下。

secrets.tf中,我创建了一个类似的秘密(这需要通过目标实现):

代码语言:javascript
运行
复制
resource "aws_secretsmanager_secret" "secrets_of_life" {
  name = "top-secret"
}

然后,我转到控制台,在AWS秘密管理器中手动设置秘密。

然后,我在secrets.tf中检索秘密如下:

代码语言:javascript
运行
复制
data "aws_secretsmanager_secret_version" "secrets_of_life_version" {
  secret_id = aws_secretsmanager_secret.secrets_of_life.id
}

locals {
  creds = jsondecode(data.aws_secretsmanager_secret_version.secrets_of_life.secret_string)
}

然后继续使用该秘密(例如,将它们作为K8s机密导出)如下:

代码语言:javascript
运行
复制
resource "kubernetes_secret" "secret_credentials" {
  metadata {
    name      = "kubernetes_secret"
    namespace = kubernetes_namespace.some_namespace.id
  }
  data = {
    top_secret = local.creds["SECRET_OF_LIFE"]
  }
  type = "kubernetes.io/generic"
}

值得一提的是,我远程存储tf state。我的实现安全吗?如果没有,我怎样才能使它更安全?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-12-25 19:52:54

是的,我可以确认它是安全的,因为您完成了以下工作:

从代码中提取

  • 纯文本秘密。
  • 将您的秘密存储在一个专用的秘密存储区中,该存储库强制加密,并且在代码本身中定义了严格访问
  • 。没有额外的手动步骤或包装脚本required.
  • Secret管理器支持旋转秘密,这在机密被泄露时非常有用。

我唯一想知道的是使用Terraform后端,它支持像s3这样的加密,并避免将状态文件与您的源代码管理相混淆。

票数 3
EN

Stack Overflow用户

发布于 2020-12-25 20:17:05

看起来不错,就像@asri建议的那样,它是一个很好的安全实现。

暴露的风险将处于偏远的状态。有可能这个秘密将以纯文本形式储存在那里。假设您使用的是S3,请确保存储桶是加密的。如果您与其他开发人员共享tf状态访问,他们可能可以访问远程状态文件中的这些值。

来自https://blog.gruntwork.io/a-comprehensive-guide-to-managing-secrets-in-your-terraform-code-1d586955ace1

这些秘密仍将以纯文本形式出现在terraform.tfstate中!这是一个开放的问题已经有6年多了,没有一个明确的计划,以一流的解决方案。有一些解决办法可以从您的状态文件中删除机密,但是这些方法很脆弱,很可能会破坏每一个新的Terraform版本,所以我不推荐它们。

票数 3
EN

Stack Overflow用户

发布于 2021-03-18 11:06:09

嗨,我在做类似的事情,这里有一些想法:

  1. 第二次运行Terraform时,秘密将以明文形式存储在S3中的状态文件中,S3是否足够安全地存储这些敏感字符串?

  1. 我的工作是使用类似的方法:运行terraform创建一个空的秘密/虚拟字符串作为占位符->手动更新到实际凭据->运行Terraform再次告诉资源使用更新的凭据。问题是,当我们在生产中部署时,我们希望过程尽可能自动化,这种方法并不理想,但我还没有找到更好的方法。

如果有人有更好的想法,请在下面留下评论。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65450899

复制
相关文章

相似问题

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