【问题标题】:How to retrieve secret from cross region AWS Secret Manager in terraform如何在 terraform 中从跨区域 AWS Secret Manager 检索密钥
【发布时间】:2021-07-17 16:18:28
【问题描述】:

我的 EC2 在 Dev 账户中,我的凭证在 AWS 的安全账户中, 我正在尝试从我的安全帐户中检索 Secret Manager 中的机密,EC2 和凭据都在不同的区域中

aws secretsmanager get-secret-value --secret-id arn:aws:secretsmanager:us-east-2:2222222:secret:demo/democreds/secret_string --version-stage  AWSCURRENT --region us-east-2

我可以通过上述命令获取秘密,但是在运行 terraform plan 时,我得到了 这个错误:

Error: error reading Secrets Manager Secret Version: AccessDeniedException: User: arn:aws:sts::1111111111:assumed-role/user_name/xxxxxxxxx is not authorized to perform: secretsmanager:GetSecretValue on resource: arn:aws:secretsmanager:us-east-2:222222222:secret:demo/democreds/secret_string
    status code: 400, request id: 123dcdaaaa-cdcd33-2bb0d-6dhbc-083gbd6622111

我已经为我用于 secretsmanager:GetSecretValue 的角色附加了一个策略

【问题讨论】:

  • 对于跨区域访问,您需要在您的 terraform 代码中添加第二个 provider,您可以在其中指定不同的区域。您将区域所在的 arn 中有趣的部分删掉了,我猜错误消息中的 arn 包含错误的区域!?
  • @luk2302 感谢您的评论,我已经检查了ARN,它们是正确的,我的ec2在不同的区域,凭据放在不同帐户的不同区域
  • 那么你需要提供更多的细节,而不是删除这么多有用的东西。涉及哪些地区,哪些账户(您可以使用 111111 和 22222 作为账户 id,但包括它们以便我们知道什么是跨账户,什么不是),哪些用户,这里涉及的权限是什么?
  • 现在检查,ec2 在 ca-central-1
  • 作为什么用户执行第一个请求?作为11111111112222222 中的一个?

标签: amazon-web-services terraform terraform-provider-aws aws-secrets-manager


【解决方案1】:

解决了这个问题,方法是在另一个账户中复制与 EC2 相同区域的安全账户中的密钥。如果我们通过 terraform 从其他帐户检索机密,则区域必须匹配。

【讨论】:

    猜你喜欢
    • 2021-04-11
    • 1970-01-01
    • 2020-06-18
    • 2021-09-10
    • 2021-10-29
    • 2021-06-25
    • 1970-01-01
    • 2021-10-22
    • 2020-02-01
    相关资源
    最近更新 更多