本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
允许用户与之互动 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 访问权限(控制台)
使用 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 策略概述。
-
-
在导航窗格中,选择策略。
-
要向 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 访问权限。跳过此过程中的其余步骤。
-
-
请选择创建策略。
-
在创建策略页面上的创建您自己的策略旁,选择选择。
-
在审查策略页面上,为策略名称输入策略的名称(例如,
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 访问权限的 IAM 群组或 IAM 用户的名称。
-
对于组,在组设置页面上的权限选项卡上,展开托管策略,然后选择附加策略。
对于用户,在用户设置页面上的权限选项卡上,选择添加权限。
-
对于群组,在附加策略页面上,选择 CodeBuildAccessPolicy,然后选择附加策略。
对于用户,在添加权限页面上,选择直接附加现有策略。选择 CodeBuildAccessPolicy,选择 “下一步:查看”,然后选择 “添加权限”。
向 IAM 群组或用户添加 CodeBuild 访问权限 (Amazon CLI)
-
如前面的步骤所述,请确保您已 Amazon 使用 Amazon CLI 与其中一个 IAM 实体相对应的访问 Amazon 密钥和私有访问密钥配置了。有关更多信息,请参阅《 Amazon Command Line Interface用户指南》中的开始设置Amazon Command Line Interface。
-
要向 IAM 群组或 IAM 用户添加一组自定义 Amazon 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 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 访问权限。跳过此过程中的其余步骤。
-
-
在安装的本地工作站或实例的空目录中 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": "*" } ] } -
切换到您保存该文件的目录,然后运行以下任一命令。您可以为
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 组或用户的名称。