在 AWS CodeBuild 工作人员上使用 IAM 角色

Using IAM roles on the AWS CodeBuild worker

有没有办法授予构建过程使用的 IAM 实例角色?

在我的特殊情况下,我需要在构建期间执行一些 s3 操作(与归档工件无关)。

到目前为止,我找到的唯一替代方法是在 aws codebuild 配置页面上向环境变量添加 aws 密钥和密钥。

将 IAM 角色附加到执行构建的 ec2 实例或容器会更安全。目前 (2016-12) 可能吗?

您应该能够将任何其他策略权限附加到为您的构建项目创建的服务角色。 CodeBuild 在构建期间使用该策略在构建实例中执行操作。

例如,如果您想在构建期间从 S3 中删除一个对象,则需要将以下语句添加到您的服务角色策略中:

{
    "Effect": "Allow",
    "Resource": [
        "*"
    ],
    "Action": [
        "s3:DeleteObject"
    ]
}

注意:您可能希望将这些权限限制在特定资源上,上面的示例允许对您帐户中的任何内容执行 DeleteObject。

如果您使用 CodeBuild 控制台上的第一个 运行 向导来设置您的项目,您的服务角色中应该已经有针对 s3:GetObject 和 s3:GetObjectVersion 的策略。通过控制台创建时的服务角色名称默认为'codebuild-[project name]-service-role'。