允许用户与之互动 CodeBuild - AWS CodeBuild

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

允许用户与之互动 CodeBuild

如果您是第一次按照中的步骤通过控制台开始使用 AWS CodeBuild 进行访问,则很可能不需要本主题中的信息。但是,当你继续使用时 CodeBuild,你可能需要做一些事情,比如让组织中的其他用户和群组能够与之交互 CodeBuild。

要允许IAM用户或群组与之交互 AWS CodeBuild,您必须向他们授予访问权限 CodeBuild。本节介绍如何使用IAM控制台或 AWS CLI。

如果您要 CodeBuild 使用 AWS 根帐户(不推荐)或 AWS 账户中的管理员用户进行访问,则无需按照以下说明进行操作。

有关 AWS root 账户和管理员用户的信息,请参阅《用户指南》中的 AWS 账户 roo AWS 账户 t 用户和创建您的第一个 root 用户和群组

向IAM群组或用户添加 CodeBuild 访问权限(控制台)
  1. 打开IAM控制台,网址为https://console.aws.amazon.com/iam/

    您应该已经使用以下任一 AWS Management Console 方式登录了:

    • 您的 AWS 主账号。我们不建议这么做。有关更多信息,请参阅《用户指南》中的 AWS 账户 根用户

    • 您 AWS 账户中的管理员用户。有关更多信息,请参阅用户指南中的创建您的第一个 AWS 账户 root 用户和群组

    • 您 AWS 账户中有权执行以下最低限度操作的用户:

      iam:AttachGroupPolicy iam:AttachUserPolicy iam:CreatePolicy iam:ListAttachedGroupPolicies iam:ListAttachedUserPolicies iam:ListGroups iam:ListPolicies iam:ListUsers

      有关更多信息,请参阅用户指南中的IAM策略概述

  2. 在导航窗格中,选择策略

  3. 要向IAM群组或IAM用户添加一组自定义 AWS CodeBuild 访问权限,请跳至此过程中的步骤 4。

    要向IAM组或IAM用户添加一组默认的 CodeBuild 访问权限,请选择 “策略类型”、“AWS 托管”,然后执行以下操作:

    • 要向添加完全访问权限 CodeBuild,请选中名为的框 AWSCodeBuildAdminAccess,选择 “策略操作”,然后选择 “附加”。选中目标IAM组或用户旁边的复选框,然后选择附加策略。对名为 AmazonS3 ReadOnlyAccessIAMFullAccess的政策重复此操作。

    • 要 CodeBuild 为除生成项目管理之外的所有内容添加访问权限,请选中名为的框 AWSCodeBuildDeveloperAccess,选择 “策略操作”,然后选择 “附加”。选中目标IAM组或用户旁边的复选框,然后选择附加策略。对名为 AmazonS3 ReadOnlyAccess 的政策重复此操作。

    • 要向添加只读访问权限 CodeBuild,请选中名为的复选框AWSCodeBuildReadOnlyAccess。选中目标IAM组或用户旁边的复选框,然后选择附加策略。对名为 AmazonS3 ReadOnlyAccess 的政策重复此操作。

    现在,您已向群组或用户添加了一IAM组默认的 CodeBuild 访问权限。跳过此过程中的其余步骤。

  4. 请选择创建策略

  5. 创建策略页面上的创建您自己的策略旁,选择选择

  6. 审查策略页面上,为策略名称输入策略的名称(例如,CodeBuildAccessPolicy)。如果您使用其他名称,请确保在本过程中始终使用它。

  7. 对于策略文档,输入以下内容,然后选择创建策略

    { "Version": "2012-10-17", "Statement": [ { "Sid": "CodeBuildAccessPolicy", "Effect": "Allow", "Action": [ "codebuild:*" ], "Resource": "*" }, { "Sid": "CodeBuildRolePolicy", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::account-ID:role/role-name" }, { "Sid": "CloudWatchLogsAccessPolicy", "Effect": "Allow", "Action": [ "logs:FilterLogEvents", "logs:GetLogEvents" ], "Resource": "*" }, { "Sid": "S3AccessPolicy", "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:GetObject", "s3:List*", "s3:PutObject" ], "Resource": "*" }, { "Sid": "S3BucketIdentity", "Effect": "Allow", "Action": [ "s3:GetBucketAcl", "s3:GetBucketLocation" ], "Resource": "*" } ] }
    注意

    此策略允许访问所有 CodeBuild 操作和潜在的大量 AWS 资源。要将权限限制为特定 CodeBuild操作,请在 CodeBuild 策略声明codebuild:*中更改的值。有关更多信息,请参阅 Identity and Access Management。要限制对特定 AWS 资源的访问权限,请更改Resource对象的值。有关更多信息,请参阅 Identity and Access Management

  8. 在导航窗格中,选择用户

  9. 在群组或用户列表中,选择要向其添加 CodeBuild 访问权限的IAM群组或IAM用户的名称。

  10. 对于组,在组设置页面上的权限选项卡上,展开托管策略,然后选择附加策略

    对于用户,在用户设置页面上的权限选项卡上,选择添加权限

  11. 对于群组,在附加策略页面上,选择 CodeBuildAccessPolicy,然后选择附加策略

    对于用户,在添加权限页面上,选择直接附加现有策略。选择 CodeBuildAccessPolicy,选择 “下一步:查看”,然后选择 “添加权限”。

为IAM群组或用户添加 CodeBuild 访问权限 (AWS CLI)
  1. 确保按照前面的步骤所述, AWS 使用 AWS CLI 与其中一个IAM实体相对应的访问 AWS 密钥和私有访问密钥配置了。有关更多信息,请参阅《 AWS Command Line Interface用户指南》中的开始设置AWS Command Line Interface

  2. 要向IAM组或IAM用户添加一组自定义 AWS CodeBuild 访问权限,请跳至此过程中的步骤 3。

    要向群组或IAM用户添加一IAM组默认的 CodeBuild 访问权限,请执行以下操作:

    根据您是要向IAM群组还是用户添加权限,运行以下命令之一:

    aws iam attach-group-policy --group-name group-name --policy-arn policy-arn aws iam attach-user-policy --user-name user-name --policy-arn policy-arn

    你必须运行命令三次,替换 group-name 或者 user-name 使用IAM组名或用户名,然后替换 policy-arn 以下每项策略都只能使用一次 Amazon 资源名称 (ARNs):

    • 要向添加完全访问权限 CodeBuild,请使用以下策略ARNs:

      • arn:aws:iam::aws:policy/AWSCodeBuildAdminAccess

      • arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess

      • arn:aws:iam::aws:policy/IAMFullAccess

    • 要 CodeBuild 为除生成项目管理之外的所有内容添加访问权限,请使用以下策略ARNs:

      • arn:aws:iam::aws:policy/AWSCodeBuildDeveloperAccess

      • arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess

    • 要向添加只读访问权限 CodeBuild,请使用以下策略ARNs:

      • arn:aws:iam::aws:policy/AWSCodeBuildReadOnlyAccess

      • arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess

    现在,您已向群组或用户添加了一IAM组默认的 CodeBuild 访问权限。跳过此过程中的其余步骤。

  3. 在安装的本地工作站或实例的空目录中 AWS CLI ,创建一个名为put-group-policy.json或的文件put-user-policy.json。如果您使用其他文件名,请确保在本过程中始终使用它。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "CodeBuildAccessPolicy", "Effect": "Allow", "Action": [ "codebuild:*" ], "Resource": "*" }, { "Sid": "CodeBuildRolePolicy", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::account-ID:role/role-name" }, { "Sid": "CloudWatchLogsAccessPolicy", "Effect": "Allow", "Action": [ "logs:FilterLogEvents", "logs:GetLogEvents" ], "Resource": "*" }, { "Sid": "S3AccessPolicy", "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:GetObject", "s3:List*", "s3:PutObject" ], "Resource": "*" }, { "Sid": "S3BucketIdentity", "Effect": "Allow", "Action": [ "s3:GetBucketAcl", "s3:GetBucketLocation" ], "Resource": "*" } ] }
    注意

    此策略允许访问所有 CodeBuild 操作和潜在的大量 AWS 资源。要将权限限制为特定 CodeBuild操作,请在 CodeBuild 策略声明codebuild:*中更改的值。有关更多信息,请参阅 Identity and Access Management。要限制对特定 AWS 资源的访问权限,请更改相关Resource对象的值。有关更多信息,请参阅Identity and Access Management或特定 AWS 服务的安全文档。

  4. 切换到您保存该文件的目录,然后运行以下任一命令。您可以为 CodeBuildGroupAccessPolicyCodeBuildUserAccessPolicy 使用不同的值。如果您使用其他值,请确保在此处使用它们。

    对于 IAM 组:

    aws iam put-group-policy --group-name group-name --policy-name CodeBuildGroupAccessPolicy --policy-document file://put-group-policy.json

    对于用户:

    aws iam put-user-policy --user-name user-name --policy-name CodeBuildUserAccessPolicy --policy-document file://put-user-policy.json

    在前面的命令中,替换 group-name 或者 user-name 使用目标IAM组或用户的名称。