有没有办法授予构建过程使用的IAM实例角色?
在我的特定情况下,我需要在构建期间执行一些s3操作(与归档工件无关)。
到目前为止,我找到的唯一替代方法是在aws codebuild配置页面上为环境变量添加aws密钥和密码。
将IAM角色附加到执行构建的ec2实例或容器会更安全。目前(2016-12)可能吗?
答案 0 :(得分:8)
您应该能够将任何其他策略权限附加到为您的构建项目创建的服务角色。 CodeBuild在构建时使用该策略来执行构建实例中的操作。
例如,如果要在构建期间从S3中删除对象,则需要将以下语句添加到服务角色策略中:
{
"Effect": "Allow",
"Resource": [
"*"
],
"Action": [
"s3:DeleteObject"
]
}
注意:您可能希望将这些权限限制为特定资源,上面的示例允许您帐户中的任何内容使用DeleteObject。
如果您使用CodeBuild控制台上的首次运行向导来设置项目,那么您的服务角色中应该已经有s3:GetObject和s3:GetObjectVersion的策略。通过控制台创建时的服务角色名称默认为“codebuild- [项目名称] -service-role”。