允许用户与之互动 CodeBuild - Amazon CodeBuild
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

允许用户与之互动 CodeBuild

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • 要 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 操作和潜在的大量 Amazon 资源。要将权限限制为特定 CodeBuild操作,请在 CodeBuild 策略声明codebuild:*中更改的值。有关更多信息,请参阅 身份和访问管理。要限制对特定 Amazon 资源的访问权限,请更改Resource对象的值。有关更多信息,请参阅 身份和访问管理

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

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

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

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

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

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

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

  2. 要向 IAM 群组或 IAM 用户添加一组自定义 Amazon 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-nameuser-name替换为 IAM 组名或用户名,然后为以下每项策略替换policy-arn一次 Amazon Resource Names (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. 在安装的本地工作站或实例的空目录中 Amazon 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 操作和潜在的大量 Amazon 资源。要将权限限制为特定 CodeBuild操作,请在 CodeBuild 策略声明codebuild:*中更改的值。有关更多信息,请参阅 身份和访问管理。要限制对特定 Amazon 资源的访问权限,请更改相关Resource对象的值。有关更多信息,请参阅身份和访问管理或特定 Amazon 服务的安全文档。

  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-nameuser-name替换为目标 IAM 组或用户的名称。