amazon-web-services - 如何将 pem 文件和其他 secret 传递给 AWS CodeBuild?

标签 amazon-web-services aws-codebuild

我有一个使用加壳器的项目,需要 pem 文件来执行一些 ssh 任务。我正在尝试使用 CodeBuild 将其自动化。

将 pem 文件(或任何其他 secret )获取到 AWS CodeBuild 的最佳方式(或任何方式)是什么?

最佳答案

您可以使用 SSM Parameter Store 安全字符串来存储您的私钥。

Parameter Store 使用 AWS KMS 来加密和解密安全字符串参数的参数值。这意味着您可以创建客户管理的 CMK,并通过 key /IAM 策略控制谁可以使用此 key 来解密参数。

使用 put-parameter 将 key 存储为安全字符串。

aws ssm put-parameter --name mypem01 --type SecureString --key-id 1234abcd-12ab-34cd-56ef-1234567890ab --value "<PEM_file_content>"

在构建规范中,使用以下命令获取 key 。

aws ssm get-parameter --name mypem01 --with-decryption --output text --query Parameter.Value

您应该将以下 IAM 策略附加到 CodeBuild 服务角色。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetParameter*"
            ],
            "Resource": "arn:aws:ssm:us-west-1:123456789012:parameter/EC2PEM/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:us-west-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"
        }
    ]
}

IAM 用户需要以下策略来创建安全字符串参数:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:PutParameter"
            ],
            "Resource": "arn:aws:ssm:us-west-2:111122223333:parameter/FinancialParameters/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:Encrypt"
            ],
            "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
        }
    ]
}

有关详细信息,请参阅 How Parameter Store Uses AWS KMS

关于amazon-web-services - 如何将 pem 文件和其他 secret 传递给 AWS CodeBuild?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57698011/

相关文章:

amazon-web-services - 使用@SqsListener时,Spring Boot应用程序启动时失败

php - 无法更新到 php 5.4 - AWS ec2

npm - 构建成功运行 `next build` 时,AWS CodeBuild 不生成任何工件

amazon-web-services - AWS Lambda S3 事件无限循环

amazon-web-services - 如何解决此错误 - 属性 {/DistributionConfig/Aliases} 的值与类型 {Array} 不匹配

amazon-web-services - CodeBuild 不会将构建工件上传到 S3

amazon-web-services - NoSuchKey : The specified key does not exist AWS S3 Codebuild

elasticsearch - AWS CodeBuild:使用elasticsearch单元测试构建应用程序无法以root身份运行

c++ - C++ 编译器 g++.exe 无法编译简单的测试程序 - 确定 CXX 编译器是否工作失败