gpt4 book ai didi

aws-cloudformation - 从 CloudFormation AccessKey 创建中安全地获取访问 key / secret

转载 作者:行者123 更新时间:2023-12-03 07:11:28 26 4
gpt4 key购买 nike

我创建了一个 CloudFormation 模板,该模板成功创建了 IAM 用户和 AccessKey,并将该 AccessKey 分配给 IAM 用户。现在,我通过将 AccessKey 的 secret 输出到 CloudFormation 模板的 Outputs 部分来获取它。

我想知道是否有更安全的方法来创建 AccessKey 并获取其相应的 key ,而无需在 Outputs 部分中以纯文本形式输出它。

我对此有点困惑,因为 AWS 没有太多关于执行此操作的信息,而且它所提供的小文档直接相互矛盾。 Here AWS 建议执行我上面描述的“检索 key 的一种方法是将其放入输出值”。这似乎是一个安全问题,并且已被另一个 AWS 文档 Here 证实。其中显示“我们强烈建议您不要使用此部分输出敏感信息,例如密码或 secret ”。

我是否误解了他们的文档,或者这是直接矛盾吗?我看过一条 S/O 评论 Here建议使用 AWS Secrets Manager,但我无法弄清楚如何将 AccessKey key 放入 Secrets Manager,在 Secrets Manager 中可以通过 boto3 之类的工具更安全地存储和获取它。任何这样的例子都会非常有帮助。我的CloudFormation模板如下供引用。

{
"Description": "My CloudFormation Template",
"Outputs": {
"UserAccessKeyId": {
"Description": "The value for the User's access key id.",
"Value": {
"Ref": "UserAccessKey"
}
},
"UserSecretKey": {
"Description": "The value for the User's secret key.",
"Value": {
"Fn::GetAtt": [
"UserAccessKey",
"SecretAccessKey"
]
}
}
},
"Resources": {
"User": {
"Properties": {
"UserName": "myNewUser"
},
"Type": "AWS::IAM::User"
},
"PrimaryUserAccessKey": {
"DependsOn": "User",
"Properties": {
"Status": "Active",
"UserName": "myNewUser"
},
"Type": "AWS::IAM::AccessKey"
}
}
}

最佳答案

我建议将其放在 Secret 中。您可以让 CloudFormation 将值写入堆栈中的 Secrets Manager,然后您可以通过代码访问它。这使您可以拥有一个 secret ,任何人都无需看到或触摸即可使用它。

我认为这样的东西应该有效(注意:我实际上还没有尝试过这个)。


AccessKey:
Type: AWS::IAM::AccessKey
Properties:
Serial: 1
Status: Active
UserName: 'joe'

AccessKeySecret:
Type: AWS::SecretsManager::Secret
Properties:
Name: JoeAccessKey
Description: Joes Access Key
SecretString: !Sub '{"AccessKeyId":"${AccessKey}","SecretAccessKey":"${AccessKey.SecretAccessKey}"}'

关于aws-cloudformation - 从 CloudFormation AccessKey 创建中安全地获取访问 key / secret ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67098148/

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