在AWS CodeBuild工作线上使用IAM角色

问题描述 投票:10回答:1

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

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

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

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

amazon-web-services aws-codepipeline aws-codebuild
1个回答
8
投票

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

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.