将基于身份的策略 (IAM policy) 用于 CodeCommit - Amazon CodeCommit
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

将基于身份的策略 (IAM policy) 用于 CodeCommit

以下基于身份的策略示例演示了账户管理员如何将权限策略附加到 IAM 身份(用户、组和角色),以授予对 CodeCommit 资源执行操作的权限。

重要

我们建议您首先阅读以下介绍性主题,这些主题说明了可用于管理 CodeCommit 资源访问的基本概念和选项。有关更多信息,请参阅管理 CodeCommit 资源的访问权限的概述

下面是基于身份的权限策略的示例:

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codecommit:BatchGetRepositories" ], "Resource" : [ "arn:aws:codecommit:us-east-2:111111111111:MyDestinationRepo", "arn:aws:codecommit:us-east-2:111111111111:MyDemo*" ] } ] }

该策略有一条语句,允许用户获取 us-east-2 区域中名为 MyDestinationRepo 的 CodeCommit 存储库和所有以 MyDemo 开头的 CodeCommit 存储库的信息。

使用控制台所需的权限

要查看每个 CodeCommit API 操作所需的权限以及有关 CodeCommit 操作的更多信息,请参阅 CodeCommit 权限参考

要允许用户使用 CodeCommit 控制台,管理员必须授予他们执行 CodeCommit 操作的权限。例如,您可以将 AWSCodeCommitPowerUser 托管策略或其等效策略附加到用户或组。

除了通过基于身份的策略授予用户的权限外,CodeCommit 还需要执行 Amazon Key Management Service (Amazon KMS) 操作的权限。IAM 用户不需要这些操作的显式 Allow 权限,但该用户不能附加有任何将以下权限设为 Deny 的策略:

"kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext", "kms:DescribeKey"

有关加密和 CodeCommit 的更多信息,请参阅 Amazon KMS 和加密

在控制台中查看资源

CodeCommit 控制台需要 ListRepositories 权限,以显示您的 Amazon Web Services 账户在所登录的 Amazon Web Services 区域中的存储库列表。该控制台还包括一个转到资源功能,可对资源快速执行不区分大小写的搜索。此搜索通过您的 Amazon Web Services 账户,在您登录的 Amazon Web Services 区域中执行。将显示以下服务中的以下资源:

  • Amazon CodeBuild:构建项目

  • Amazon CodeCommit:存储库

  • Amazon CodeDeploy:应用程序

  • Amazon CodePipeline:管道

要在所有服务中跨资源执行此搜索,您必须具有如下权限:

  • CodeBuild:ListProjects

  • CodeCommit:ListRepositories

  • CodeDeploy:ListApplications

  • CodePipeline:ListPipelines

如果您没有针对某个服务的权限,搜索将不会针对该服务的资源返回结果。即使您有权限查看资源,但如果特定资源明确 Deny 查看,搜索也不会返回这些资源。