gpt4 book ai didi

amazon-web-services - 解析 CloudFormation StackSet 中的 "shared"Secretsmanager key

转载 作者:行者123 更新时间:2023-12-03 07:22:37 25 4
gpt4 key购买 nike

在 AWS 账户 A 中,我在 key 管理器 中创建了一个 key ,它是带有 key token 的键:值对。我想与我的 AWS 组织下的任何账户共享此 secret ,因此它具有以下资源策略:

{
"Version" : "2012-10-17",
"Statement" : [ {
"Sid" : "policyForSomething",
"Effect" : "Allow",
"Principal" : {
"AWS" : "*"
},
"Action" : "secretsmanager:*",
"Resource" : "*",
"Condition" : {
"StringEquals" : {
"aws:PrincipalOrgID" : "o-xxxxxxxxxx"
}
}
} ]
}

其中 o-xxxxxxxxx 是我在 AWS Organizations 中的组织 ID。据我了解,这意味着我的 AWS 组织中的任何账户都可以访问此 secret 。

我想将 dynamic-reference 传递给 CloudFormation StackSet 中的此 key ,作为不同 AWS 组织中 lambda 的参数。

  MyCustomResource:
Type: Custom::MyCustomResource
Properties:
ServiceToken: arn:aws:lambda:thatlambdasArn
Token:
!Join
- ''
- - '{{'
- 'resolve:secretsmanager:'
- 'arn:aws:secretsmanager:us-east-1:123456789123:secret:MySecretName-otSgNu:'
- 'SecretString:token::}}'

此资源是 lambda 支持的资源。调用此 lambda 的 AWS 账户是我的 AWS 组织的一部分,因此应该有权访问该 key 。请注意,我在尝试了各种组合后使用 !Join,包括:

Token: '{{resolve:secretsmanager:arn:aws:secretsmanager:us-east-1:123456789123:secret:MySecretName-otSgNu:SecretString:token::}}'

但是,一旦我在子帐户中创建堆栈实例,似乎我得到的只是该文字字符串,而 CFN 甚至没有尝试解析 secret 本身。

StackSets 不支持这样的动态引用吗?我想要做的事情可以实现吗?

注意:向 lambda 授予对 secret 管理器的访问权限是不可能的。 lambda 正在完全不同的组织下的帐户中运行。

最佳答案

secretsmanager 动态引用不适用于自定义资源。来自 docs :

Dynamic references for secure values, such as secretsmanager, aren't currently supported in custom resources.

您必须在定义自定义资源的 lambda 函数中从 secretsmanager 获取 key 。

关于amazon-web-services - 解析 CloudFormation StackSet 中的 "shared"Secretsmanager key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72235777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com