当前位置: 首页 > 知识库问答 >
问题:

从CloudFormation AccessKey创建中安全地获取访问密钥/机密

苍元章
2023-03-14

我创建了一个CloudFormation模板,它成功地创建了一个IAM用户和一个AccessKey,并将该AccessKey分配给IAM用户。现在,我通过在CloudFormation模板的outputs部分中输出AccessKey来获得AccessKey的秘密。

{
    "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"
        }
    }
}

共有1个答案

魏翔
2023-03-14

我建议把它保密。您可以让CloudFormation将值写入堆栈中的Secrets Manager,然后通过代码访问它。这让你有一个秘密,没有人必须看到或触摸才能使用它。

我想像这样的事情应该会奏效(注意:我实际上还没有尝试过)。


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}"}'
 类似资料:
  • 我在Powershell中编写了一个程序,该程序在Azure Functions应用程序中按计划运行。为了避免硬编码的凭据,我创建了一个Azure密钥库来存储秘密。我在Azure函数中创建了一个托管标识,在Azure Key Vault中创建了秘密,然后在Azure函数中创建了应用程序设置,并使用指向Azure Key Vault中秘密的URL。程序引用应用程序机密(APPSETTING),并按照

  • 我正在开发一个将文件上传到Azure存储的.NET应用程序。我正在利用https://azure.microsoft.com/en-us/documentation/articles/storage-encrypt-decrypt-blobs-key-vault/教程中所做的客户端加密 应用程序工作,即,我可以成功地上传一个加密的blob到一个选定的存储帐户和容器。 但是,我对RSA密钥的安全性有

  • 问题内容: 使用标准JDK在Java中生成安全的随机AES密钥的推荐方法是什么? 在其他帖子中,我发现了这一点,但是使用a 可能是一个更好的主意: 如果答案中包含对为什么这是生成随机密钥的一种好方法的解释,那将是很好的。谢谢! 问题答案: 我将使用您建议的代码,但略作简化: 让提供者选择计划如何获得随机性-不要定义可能不如提供者已经选择的东西更好的东西。 该代码示例假定(如Maarten所指出的那

  • 我正在使用JGit访问远程Git回购,我需要为此使用SSH。JGit使用JSch提供安全访问。但是,我不确定如何设置JGit的密钥文件和知道主机文件。我所尝试的如下。 创建SshSessionFactory的自定义配置,通过子类化JSchConfigSessionFactory使用: 在我访问远程Git回购的类中,执行了以下操作: 我不知道如何将这个JSch对象与JGit关联,以便它能够成功地连接

  • 在Go中,有没有更简单/更好的方法从地图中获取一部分密钥? 目前,我正在遍历地图并将关键点复制到一个切片:

  • 问题内容: 我尝试从KeyStore获取密钥。我通过Keytool创建了一个密钥库: keytool -genkeypair -dname“ cn = Mark Jones,ou = JavaSoft,o = Sun,c = US” -alias business2 -keypass abcdtest -keystore C:\ workspace \ XMLSample \ keystore \