13

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

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

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

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

4

1 回答 1

11

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

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

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

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

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

于 2016-12-09T17:09:20.083 回答