本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
允许用户与之互动 CodeBuild
如果您是第一次按照中的步骤通过控制台开始使用 AWS CodeBuild 进行访问,则很可能不需要本主题中的信息。但是,当你继续使用时 CodeBuild,你可能需要做一些事情,比如让组织中的其他用户和群组能够与之交互 CodeBuild。
要允许IAM用户或群组与之交互 AWS CodeBuild,您必须向他们授予访问权限 CodeBuild。本节介绍如何使用IAM控制台或 AWS CLI。
如果您要 CodeBuild 使用 AWS 根帐户(不推荐)或 AWS 账户中的管理员用户进行访问,则无需按照以下说明进行操作。
有关 AWS root 账户和管理员用户的信息,请参阅《用户指南》中的 AWS 账户 roo AWS 账户 t 用户和创建您的第一个 root 用户和群组。
向IAM群组或用户添加 CodeBuild 访问权限(控制台)
打开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策略概述。
-
-
在导航窗格中,选择策略。
-
要向IAM群组或IAM用户添加一组自定义 AWS CodeBuild 访问权限,请跳至此过程中的步骤 4。
要向IAM组或IAM用户添加一组默认的 CodeBuild 访问权限,请选择 “策略类型”、“AWS 托管”,然后执行以下操作:
-
要向添加完全访问权限 CodeBuild,请选中名为的框 AWSCodeBuildAdminAccess,选择 “策略操作”,然后选择 “附加”。选中目标IAM组或用户旁边的复选框,然后选择附加策略。对名为 AmazonS3 ReadOnlyAccess 和IAMFullAccess的政策重复此操作。
-
要 CodeBuild 为除生成项目管理之外的所有内容添加访问权限,请选中名为的框 AWSCodeBuildDeveloperAccess,选择 “策略操作”,然后选择 “附加”。选中目标IAM组或用户旁边的复选框,然后选择附加策略。对名为 AmazonS3 ReadOnlyAccess 的政策重复此操作。
-
要向添加只读访问权限 CodeBuild,请选中名为的复选框AWSCodeBuildReadOnlyAccess。选中目标IAM组或用户旁边的复选框,然后选择附加策略。对名为 AmazonS3 ReadOnlyAccess 的政策重复此操作。
现在,您已向群组或用户添加了一IAM组默认的 CodeBuild 访问权限。跳过此过程中的其余步骤。
-
-
请选择创建策略。
-
在创建策略页面上的创建您自己的策略旁,选择选择。
-
在审查策略页面上,为策略名称输入策略的名称(例如,
CodeBuildAccessPolicy
)。如果您使用其他名称,请确保在本过程中始终使用它。 -
对于策略文档,输入以下内容,然后选择创建策略。
{ "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。 -
在导航窗格中,选择组或用户。
-
在群组或用户列表中,选择要向其添加 CodeBuild 访问权限的IAM群组或IAM用户的名称。
-
对于组,在组设置页面上的权限选项卡上,展开托管策略,然后选择附加策略。
对于用户,在用户设置页面上的权限选项卡上,选择添加权限。
-
对于群组,在附加策略页面上,选择 CodeBuildAccessPolicy,然后选择附加策略。
对于用户,在添加权限页面上,选择直接附加现有策略。选择 CodeBuildAccessPolicy,选择 “下一步:查看”,然后选择 “添加权限”。
为IAM群组或用户添加 CodeBuild 访问权限 (AWS CLI)
-
确保按照前面的步骤所述, AWS 使用 AWS CLI 与其中一个IAM实体相对应的访问 AWS 密钥和私有访问密钥配置了。有关更多信息,请参阅《 AWS Command Line Interface用户指南》中的开始设置AWS Command Line Interface。
-
要向IAM组或IAM用户添加一组自定义 AWS CodeBuild 访问权限,请跳至此过程中的步骤 3。
要向群组或IAM用户添加一IAM组默认的 CodeBuild 访问权限,请执行以下操作:
根据您是要向IAM群组还是用户添加权限,运行以下命令之一:
aws iam attach-group-policy --group-name
group-name
--policy-arnpolicy-arn
aws iam attach-user-policy --user-nameuser-name
--policy-arnpolicy-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 访问权限。跳过此过程中的其余步骤。
-
-
在安装的本地工作站或实例的空目录中 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 服务的安全文档。 -
切换到您保存该文件的目录,然后运行以下任一命令。您可以为
CodeBuildGroupAccessPolicy
和CodeBuildUserAccessPolicy
使用不同的值。如果您使用其他值,请确保在此处使用它们。对于 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组或用户的名称。