

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

# 使用基于身份的策略（IAM 策略） CodeCommit
<a name="auth-and-access-control-iam-identity-based-access-control"></a>

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

**重要**  
我们建议您先阅读介绍性主题，这些主题解释了管理 CodeCommit 资源访问权限的基本概念和选项。有关更多信息，请参阅 [管理 CodeCommit 资源访问权限概述](auth-and-access-control.md#auth-and-access-control-iam-access-control-identity-based)。

**Topics**
+ [使用 CodeCommit 控制台所需的权限](#console-permissions)
+ [在控制台中查看资源](#console-resources)
+ [AWS 的托管策略 CodeCommit](security-iam-awsmanpol.md)
+ [客户管理型策略示例](customer-managed-policies.md)

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

------
#### [ JSON ]

****  

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

------

该政策有一条声明，允许用户获取有关名为的 CodeCommit存储库`MyDestinationRepo`以及该**us-east-2**区域`MyDemo`中所有以该名称开头的 CodeCommit 存储库的信息。

## 使用 CodeCommit 控制台所需的权限
<a name="console-permissions"></a>

要查看每个 CodeCommit API 操作所需的权限以及有关 CodeCommit 操作的更多信息，请参阅[CodeCommit 权限参考](auth-and-access-control-permissions-reference.md)。

要允许用户使用 CodeCommit 控制台，管理员必须向他们授予 CodeCommit 操作权限。例如，您可以将[AWSCodeCommitPowerUser](security-iam-awsmanpol.md#managed-policies-poweruser)托管策略或其等效策略附加到用户或组。

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

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

有关加密和的更多信息 CodeCommit，请参阅[AWS KMS 和加密](encryption.md)。

## 在控制台中查看资源
<a name="console-resources"></a>

 CodeCommit 控制台需要`ListRepositories`获得在您登录时显示您的 Amazon Web Services 账户的 AWS 区域 存储库列表的权限。该控制台还包括一个**转到资源**功能，可对资源快速执行不区分大小写的搜索。此搜索是在您登录的亚马逊 Web S AWS 区域 ervices 账户中执行的。将显示以下服务中的以下资源：
+ AWS CodeBuild：构建项目
+ AWS CodeCommit：存储库
+ AWS CodeDeploy：应用程序
+ AWS CodePipeline：管道

要在所有服务中跨资源执行此搜索，您必须具有如下权限：
+ CodeBuild: `ListProjects`
+ CodeCommit: `ListRepositories`
+ CodeDeploy: `ListApplications`
+ CodePipeline: `ListPipelines`

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