

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 「AWS CodeCommit」 のセキュリティ
<a name="security"></a>

AWS ではクラウドのセキュリティが最優先事項です。AWS のお客様はセキュリティを最も重視する組織の要件を満たすように構築されたデータセンターとネットワークアーキテクチャから利点を得られます。

セキュリティはAWS とお客様の間の共有責任です。[責任共有モデル](https://aws.amazon.com/compliance/shared-responsibility-model/)では、これをクラウド*の*セキュリティおよびクラウド*内*のセキュリティと説明しています。
+ **クラウドのセキュリティ** - AWS はAWS Cloud で AWS のサービスを実行するインフラストラクチャを保護する責任を負います。また、AWS は使用するサービスを安全に提供します。[AWS コンプライアンスプログラム](https://aws.amazon.com/compliance/programs/)の一環として、サードパーティー監査者が定期的にセキュリティの有効性をテストおよび検証します。AWS CodeCommit に適用するコンプライアンスプログラムの詳細については、「[コンプライアンスプログラムによる対象範囲内の AWS のサービス](https://aws.amazon.com/compliance/services-in-scope/)」「」を参照してください。
+ **クラウド内のセキュリティ** - ユーザーの責任は、使用する AWS サービスに応じて異なります。また、ユーザーは、データの機密性、会社の要件、適用される法律や規制など、その他の要因についても責任を負います。

このドキュメントは、CodeCommit を使用する際の責任共有モデルの適用方法を理解するのに役立ちます。以下のトピックでは、セキュリティおよびコンプライアンスの目的を達成するように CodeCommit を設定する方法について説明します。また、CodeCommit リソースのモニタリングや保護に他の AWS のサービスを利用する方法についても説明します。

**Topics**
+ [AWS CodeCommit でのデータ保護](data-protection.md)
+ [の Identity and Access Management AWS CodeCommit](security-iam.md)
+ [での耐障害性AWS CodeCommit](disaster-recovery-resiliency.md)
+ [AWS CodeCommit 内のインフラストラクチャセキュリティ](infrastructure-security.md)

# AWS CodeCommit でのデータ保護
<a name="data-protection"></a>

マネージドサービスであるため、AWS グローバルネットワークセキュリティで保護されています。AWSセキュリティサービスと AWS がインフラストラクチャを保護する方法については、「[AWSクラウドセキュリティ](https://aws.amazon.com/security/)」を参照してください。インフラストラクチャセキュリティのベストプラクティスを使用して AWS 環境を設計するには、*セキュリティの柱 - AWS Well-Architected Framework*の[インフラストラクチャ保護](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html)を参照してください。

AWS 公開版 API コールを使用して、ネットワーク経由でアクセスします。クライアントは以下をサポートする必要があります。
+ Transport Layer Security (TLS)。TLS 1.2 が必須で、TLS 1.3 をお勧めします。
+ DHE (楕円ディフィー・ヘルマン鍵共有) や ECDHE (楕円曲線ディフィー・ヘルマン鍵共有) などの完全前方秘匿性 (PFS) による暗号スイート。これらのモードは Java 7 以降など、ほとんどの最新システムでサポートされています。

保存時の CodeCommit リポジトリは自動的に暗号化されます。お客様の操作は必要ありません。CodeCommit は、転送中のリポジトリデータも暗号化します。CodeCommit リポジトリでは、HTTPS プロトコル、SSH プロトコル、またはその両方を使用できます。詳細については、「[のセットアップAWS CodeCommit](setting-up.md)」を参照してください。CodeCommit リポジトリへの [cross-account アクセス](cross-account.md) を設定することもできます。

**Topics**
+ [AWS Key Management Service AWS CodeCommit および リポジトリの暗号化](encryption.md)
+ [認証情報をローテーションして AWS CodeCommit リポジトリに接続する](temporary-access.md)

# AWS Key Management Service AWS CodeCommit および リポジトリの暗号化
<a name="encryption"></a>

CodeCommit リポジトリ内のデータは、転送中と不使用時のいずれも暗号化されます。データが CodeCommit リポジトリにプッシュされると (**git push** を呼び出すことによってプッシュされる場合など)、リポジトリに格納されると同時に、CodeCommit は受信データを暗号化します。データが CodeCommit リポジトリからプルされると (例: **git pull** を呼び出す)、CodeCommit は、データを復号し、発信者にその復号データを送信します。これは、プッシュリクエストまたはプルリクエストに関連付けられた IAM ユーザーが によって認証されていることを前提としています AWS。送信データまたは受信データは、HTTPS または SSH で暗号化されたネットワークプロトコルを使用して送信されます。

 AWS マネージドキー またはカスタマーマネージドキーを使用して、リポジトリ内のデータを暗号化および復号できます。カスタマーマネージドキーと AWS マネージドキーの違いの詳細については、「[カスタマーキーと AWS マネージドキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-mgmt)」を参照してください。カスタマーマネージドキーを指定しない場合、CodeCommit はリポジトリ内のデータの暗号化と復号に AWS マネージドキー を使用します。この AWS マネージドキー は AWS アカウントで自動的に作成されます。 AWS リージョン Amazon Web Services アカウントの新しい に CodeCommit リポジトリを初めて作成するときに、カスタマーマネージドキーを指定しない場合、CodeCommit は AWS マネージドキー () の同じ AWS リージョン に AWS Key Management Service (`aws/codecommit`キー) を作成しますAWS KMS。この `aws/codecommit` キーは CodeCommit によってのみ使用されます。これは、アマゾン ウェブ サービスアカウントに保存されます。指定した内容に応じて、CodeCommit はカスタマーマネージドキーまたは AWS マネージドキー を使用してリポジトリ内のデータを暗号化および復号します。

**重要**  
 CodeCommit は、リポジトリ内のデータの暗号化と復号に使用される AWS KMS キーに対して次の AWS KMS アクションを実行します。を使用している場合 AWS マネージドキー、ユーザーはこれらのアクションに対する明示的なアクセス許可を必要としませんが、`aws/codecommit`キーのこれらのアクションを拒否するポリシーをアタッチすることはできません。 AWS アカウント ID がそのキーのポリシープリンシパルとして設定されたカスタマーマネージドキーを使用している場合は、これらのアクセス許可を明示的に に設定する必要があります`allow`。具体的には、最初のリポジトリを作成し、リポジトリのキーを更新するときに、 を使用している場合`deny`は、次のアクセス許可を に設定しないでください。ポリシープリンシパルでカスタマーマネージドキーを使用している場合`allow`は AWS マネージドキー、 を に設定する必要があります。  
`"kms:Encrypt"`
`"kms:Decrypt"`
`"kms:ReEncrypt"` (コンテキストによっては、これには `kms:ReEncryptFrom`、  
`kms:ReEncryptTo`、または `kms:ReEncrypt*` が拒否に設定されていないことが必要になる場合があります。)
`"kms:GenerateDataKey"`
`"kms:GenerateDataKeyWithoutPlaintext"`
`"kms:DescribeKey"`

独自のカスタマーマネージドキーを使用する場合は、リポジトリが存在する AWS リージョン でキーを使用できる必要があります。CodeCommit は、単一リージョンとマルチリージョンの両方のカスタマーマネージドキーの使用をサポートします。キーマテリアルのオリジンタイプはすべてサポートされていますが、デフォルトの **[KMS]** オプションを使用することをお勧めします。**[外部キーストア]** オプションを使用する場合、ストアプロバイダによる遅延が発生する可能性があります。加えて: CodeCommit では、カスタマーマネージドキーを使用する場合、次の要件があります。
+ CodeCommit は対称キーの使用のみをサポートします。
+ キーの使用タイプは **[暗号化と復号化]** に設定する必要があります。

カスタマーマネージドキーの作成の詳細については、「[概念](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-mgmt)」および「[キーの作成](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)」を参照してください。

CodeCommit によって AWS マネージドキー 生成された に関する情報を表示するには、以下を実行します。

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) で AWS Key Management Service (AWS KMS) コンソールを開きます。

1. を変更するには AWS リージョン、ページの右上隅にあるリージョンセレクターを使用します。

1. サービスナビゲーションペインで、[**AWS マネージドキー**] を選択します。キー AWS リージョン を確認する にサインインしていることを確認します。

1. 暗号化キーのリストで、エイリアス **aws/codecommit** AWS マネージドキー を持つ を選択します。に関する基本情報 AWS 所有のキー が表示されます。

これを変更または削除することはできません AWS マネージドキー。

## 暗号化アルゴリズムを使用してリポジトリデータを暗号化する方法
<a name="encryption-algorithms"></a>

CodeCommit では、2 つの異なる方法でデータを暗号化します。6 MB 未満の個々の Git オブジェクトは、データ整合性の検証を提供する AES-GCM-256 を使用して暗号化されます。1 つの blob の 6 MB から最大 2 GB のオブジェクトは、AES-CBC-256 を使用して暗号化されます。CodeCommit は常に暗号化コンテキストを検証します。

## 暗号化コンテキスト
<a name="encryption-context"></a>

と統合された各サービスは、暗号化オペレーションと復号オペレーションの両方の暗号化コンテキスト AWS KMS を指定します。暗号化コンテキストは、データの整合性を調べるために AWS KMS で使用される追加の認証情報です。暗号化オペレーションに対して暗号化コンテキストを指定するときは、復号オペレーションに対しても指定する必要があります。そうしないと、復号は失敗します。CodeCommit は、暗号化コンテキストに CodeCommit リポジトリ ID を使用します。**get-repository** コマンドまたは CodeCommit コンソールを使用してリポジトリ ID を見つけることができます。 AWS CloudTrail ログで CodeCommit リポジトリ ID を検索して、CodeCommit リポジトリ内のデータを暗号化または復号 AWS KMS する のキーに対して実行された暗号化オペレーションを理解します。

詳細については AWS KMS、「 [AWS Key Management Service デベロッパーガイド](https://docs.aws.amazon.com/kms/latest/developerguide/)」を参照してください。

# 認証情報をローテーションして AWS CodeCommit リポジトリに接続する
<a name="temporary-access"></a>

IAM ユーザーを設定したり、アクセスキーとシークレットキーを使用したりすることなく、 AWS CodeCommit リポジトリへのアクセスをユーザーに許可できます。フェデレーテッドアイデンティティに許可を割り当てるには、ロールを作成してそのロールの許可を定義します。フェデレーテッド ID が認証されると、その ID はロールに関連付けられ、ロールで定義されている許可が付与されます。フェデレーションのロールについては、*IAM ユーザーガイド* の [サードパーティー ID プロバイダー (フェデレーション) 用のロールを作成する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp.html) を参照してください。IAM Identity Center を使用する場合は、許可セットを設定します。アイデンティティが認証後にアクセスできるものを制御するため、IAM Identity Center は、権限セットを IAM のロールに関連付けます。アクセス許可セットの詳細については、*AWS IAM アイデンティティセンター User Guide* の [Permission sets](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) を参照してください。また、IAM ユーザーが別のアマゾン ウェブ サービスアカウントの CodeCommit リポジトリにアクセスするためのロールベースのアクセスを設定することもできます (*cross-account アクセス*と呼ばれるテクニック)。リポジトリへのクロスアカウントアクセスを設定するためのウォークスルーは、「[ロールを使用して AWS CodeCommit リポジトリへのクロスアカウントアクセスを設定する](cross-account.md)」を参照してください。

以下のような方法で認証する必要のあるユーザーに、アクセスを設定できます。
+ Security Assertion Markup Language (SAML)
+ 多要素認証（MFA）
+ フェデレーション
+ Login with Amazon
+ Amazon Cognito
+ Facebook
+ Google
+ OpenID Connect (OIDC) 対応の ID プロバイダー

**注記**  
以下の情報は、CodeCommit リポジトリに接続するための **git-remote-codecommit**または AWS CLI 認証情報ヘルパーの使用にのみ適用されます。CodeCommit への一時アクセスまたはフェデレーティッドアクセスに対して推奨されるアプローチは **git-remote-codecommit** を設定することであるため、このトピックでは、このユーティリティの使用例を示します。詳細については、「[git-remote-codecommit AWS CodeCommit を使用した への HTTPS 接続のセットアップ手順](setting-up-git-remote-codecommit.md)」を参照してください。  
アクセス認証情報の更新や一時的なアクセス認証情報で CodeCommit リポジトリに接続するのに、SSH あるいは Git 認証情報および HTTPS を使用することはできません。

以下のすべての要件が当てはまる場合には、これらのステップを実行する必要はありません。
+ Amazon EC2 インスタンスにサインインしている。
+  AWS CLI 認証情報ヘルパーで Git と HTTPS を使用して、Amazon EC2 インスタンスから CodeCommit リポジトリに接続します。
+ Amazon EC2 インスタンスに、[ AWS CLI 認証情報ヘルパーを使用した Linux、macOS、または Unix での HTTPS 接続の場合](setting-up-https-unixes.md) または [ AWS CLI 認証情報ヘルパーを使用した Windows での HTTPS 接続の場合](setting-up-https-windows.md) で説明されているアクセス許可を含む IAM インスタンスプロファイルがアタッチされている。
+ [ AWS CLI 認証情報ヘルパーを使用した Linux、macOS、または Unix での HTTPS 接続の場合](setting-up-https-unixes.md) または [ AWS CLI 認証情報ヘルパーを使用した Windows での HTTPS 接続の場合](setting-up-https-windows.md) で説明されているように、Amazon EC2 インスタンスに Git 認証情報ヘルパーがインストールおよび設定されている。

上記の要件を満たす Amazon EC2 インスタンスは、お客様に代わって CodeCommit に一時アクセス認証情報を提供するように、既に設定されています。

**注記**  
Amazon EC2 インスタンスでは、**git-remote-codecommit** を設定および使用することができます。

ユーザーに CodeCommit リポジトリへの一時アクセスを許可するには、以下の手順を実行します。



## ステップ 1: 前提条件を満たす
<a name="temporary-access-prerequisites"></a>

設定ステップを実行し、認証情報の更新を使用して CodeCommit リポジトリへのアクセスをユーザーに許可します。
+ cross-account アクセスについては、[チュートリアル: IAM ロールを使用したアマゾン ウェブ サービスアカウント間でのアクセスの委任](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-walkthrough-crossacct.html)および [ロールを使用して AWS CodeCommit リポジトリへのクロスアカウントアクセスを設定する](cross-account.md) を参照してください。
+ SAML とフェデレーションについては、[「組織の認証システムを使用して AWS リソースへのアクセス権を付与する](https://docs.aws.amazon.com/STS/latest/UsingSTS/STSUseCases.html#IdentityBrokerApplication)」および[「SAML 2.0 AWS STS ベースのフェデレーションについて](https://docs.aws.amazon.com/STS/latest/UsingSTS/CreatingSAML.html)」を参照してください。
+ MFA については、[AWSでの多要素認証 (MFA) デバイスの使用](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingMFA.html)と[ IAM ユーザーにアクセスを許可する一時的なセキュリティ認証情報の作成](https://docs.aws.amazon.com/STS/latest/UsingSTS/CreatingSessionTokens.html)を参照してください。
+ Login with Amazon、Amazon Cognito、Facebook、Google、または OIDC 互換 ID プロバイダーについては、[AWS STS 「ウェブ ID フェデレーションについて](https://docs.aws.amazon.com/STS/latest/UsingSTS/web-identity-federation.html)」を参照してください。

[の認証とアクセスコントロール AWS CodeCommit](auth-and-access-control.md) の情報を使用して、ユーザーに付与する CodeCommit アクセス許可を指定します。

## ステップ 2: ロール名またはアクセス認証情報を取得する
<a name="temporary-access-get-credentials"></a>

ユーザーがロールを引き受けることによってリポジトリにアクセスできるようにするには、そのロールの Amazon リソースネーム (ARN) をユーザーに提供します。それ以外の場合、アクセス権の設定方法に応じて、ユーザーは次のいずれかの方法で認証情報の更新を取得できます。
+ クロスアカウントアクセスの場合は、 AWS CLI [assume-role](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html) コマンドを呼び出すか、 AWS STS [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) API を呼び出します。
+ SAML の場合は、 AWS CLI [assume-role-with-saml](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-saml.html) コマンドまたは AWS STS [AssumeRoleWithSAML](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html) API を呼び出します。
+ フェデレーションの場合は、the AWS CLI [assume-role](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html) または [get-federation-token](https://docs.aws.amazon.com/cli/latest/reference/sts/get-federation-token.html) コマンド、 AWS STS [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) または [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html) APIs。
+ MFA の場合は、 AWS CLI [get-session-token](https://docs.aws.amazon.com/cli/latest/reference/sts/get-session-token.html) コマンドまたは AWS STS [GetSessionToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html) API を呼び出します。
+ Login with Amazon、Amazon Cognito、Facebook、Google、または OIDC 互換 ID プロバイダーの場合は、 AWS CLI [assume-role-with-web-identity](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-web-identity.html) コマンドまたは AWS STS [AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html) API を呼び出します。



## ステップ 3: git-remote-codecommit をインストールして を設定する AWS CLI
<a name="temporary-access-configure-credentials"></a>

 AWS CLIで [https://pypi.org/project/git-remote-codecommit/](https://pypi.org/project/git-remote-codecommit/) をインストールしてプロファイルを設定することで、アクセス認証情報を使用するようにローカルコンピュータを設定する必要があります。

1. 「[セットアップ ](setting-up.md)」の指示に従って、 AWS CLIを設定します。1 つまたは複数のプロファイルを設定するには、**aws configure** コマンドを使用します。認証情報の更新を使用して CodeCommit リポジトリに接続するときに使用する、名前付きプロファイルを作成することを検討してください。

1. 次のいずれかの方法で、認証情報をユーザー AWS CLI の名前付きプロファイルに関連付けることができます。
   + CodeCommit にアクセスするロールを引き受ける場合は、そのロールを引き受けるのに必要な情報を含む名前付きプロファイルを設定します。例えば、Amazon Web Services アカウント 111111111111 で *CodeCommitAccess* という名前のロールを引き受ける場合は、他の AWS リソースを操作するときに使用するデフォルトプロファイルと、そのロールを引き受けるときに使用する名前付きプロファイルを設定できます。次のコマンドは、*CodeCommitAccess* という名前のロールを引き受ける、名前付きプロファイルの *CodeAccess* を作成します。*Maria\$1Garcia* というユーザー名がセッションに関連付けられ、デフォルトのプロファイルが AWS 認証情報のソースとして設定されます。

     ```
     aws configure set role_arn arn:aws:iam::111111111111:role/CodeCommitAccess --profile CodeAccess
     aws configure set source_profile default --profile CodeAccess
     aws configure set role_session_name "Maria_Garcia" --profile CodeAccess
     ```

     変更を確認する場合は、`~/.aws/config` ファイル (Linux の場合) または `%UserProfile%.aws\config`ファイル (Windows の場合) を手動で表示または編集し、名前付きプロファイルの情報を確認します。たとえば、ファイルは次のようになります。

     ```
     [default]
     region = us-east-1
     output = json
     
     [profile CodeAccess]
     source_profile = default
     role_session_name = Maria_Garcia
     role_arn = arn:aws:iam::111111111111:role/CodeCommitAccess
     ```

      名前付きプロファイルを設定したら、名前付きプロファイルを使用して **git-remote-codecommit** ユーティリティで CodeCommit リポジトリのクローンを作成できます。例えば、*MyDemoRepo* という名前のリポジトリのクローンを作成するには、次のようにします。

     ```
     git clone codecommit://CodeAccess@MyDemoRepo
     ```
   + ウェブ ID フェデレーションと OpenID Connect (OIDC) を使用している場合は、ユーザーに代わって AWS Security Token Service (AWS STS) `AssumeRoleWithWebIdentity` API コールを行い、一時的な認証情報を更新する名前付きプロファイルを設定します。**aws configure set** コマンドを使用するか、 `~/.aws/credentials` ファイル (Linux の場合) または `%UserProfile%.aws\credentials` ファイル (Windows の場合) を手動で編集して、必要な設定値を持つ AWS CLI 名前付きプロファイルを追加します。例えば、*CodeCommitAccess* ロールを引き受け、ウェブ ID トークンファイル \$1/*my-credentials**/my-token-file* を使用するプロファイルを作成するには、次のようにします。

     ```
     [CodeCommitWebIdentity]
     role_arn = arn:aws:iam::111111111111:role/CodeCommitAccess
     web_identity_token_file=~/my-credentials/my-token-file
     role_session_name = Maria_Garcia
     ```

   詳細については、*AWS Command Line Interface ユーザーガイド*の[AWS Command Line Interfaceの設定](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)と[AWS CLIでの IAM ロールの使用](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html)を参照してください。

## ステップ 4: CodeCommit リポジトリにアクセスする
<a name="temporary-access-use-credentials"></a>

ユーザーが [リポジトリへの接続](how-to-connect.md) の指示に従って CodeCommit リポジトリに接続したとすると、そのユーザーは **git-remote-codecommit** によって提供される拡張機能と Git を使用して **git clone**、**git push**、および **git pull** を呼び出し、アクセスが許可されている CodeCommit リポジトリに対して、クローン作成、プッシュ、プルを行います。たとえば、リポジトリのクローンを作成するには次のようにします。

```
git clone codecommit://CodeAccess@MyDemoRepo
```

Git のコミット、プッシュ、プルコマンドは、通常の Git 構文を使用します。

ユーザーが を使用して、ローテーションするアクセス認証情報に関連付けられた AWS CLI 名前付きプロファイルを指定する AWS CLI と、そのプロファイルにスコープされた結果が返されます。



# の Identity and Access Management AWS CodeCommit
<a name="security-iam"></a>

AWS Identity and Access Management (IAM) は、管理者が AWS リソースへのアクセスを安全に制御 AWS のサービス するのに役立つ です。IAM 管理者は、誰を*認証* (サインイン) し、誰に CodeCommit リソースの使用を*承認する* (アクセス許可を付与する) かを制御します。IAM は、追加料金なしで使用できる AWS のサービス です。

**Topics**
+ [オーディエンス](#security_iam_audience)
+ [アイデンティティを使用した認証](#security_iam_authentication)
+ [ポリシーを使用したアクセスの管理](#security_iam_access-manage)
+ [の認証とアクセスコントロール AWS CodeCommit](auth-and-access-control.md)
+ [が IAM と AWS CodeCommit 連携する方法](security_iam_service-with-iam.md)
+ [CodeCommit のリソースベースのポリシー](#security_iam_service-with-iam-resource-based-policies)
+ [CodeCommit タグに基づく認可](#security_iam_service-with-iam-tags)
+ [CodeCommit IAM ロール](#security_iam_service-with-iam-roles)
+ [AWS CodeCommit アイデンティティベースのポリシーの例](#security_iam_id-based-policy-examples)
+ [AWS CodeCommit ID とアクセスのトラブルシューティング](#security_iam_troubleshoot)

## オーディエンス
<a name="security_iam_audience"></a>

 AWS Identity and Access Management (IAM) の使用方法は、ロールによって異なります。
+ **サービスユーザー** - 機能にアクセスできない場合は、管理者にアクセス許可をリクエストします (「[AWS CodeCommit ID とアクセスのトラブルシューティング](#security_iam_troubleshoot)」を参照)。
+ **サービス管理者** - ユーザーアクセスを決定し、アクセス許可リクエストを送信します (「[が IAM と AWS CodeCommit 連携する方法](security_iam_service-with-iam.md)」を参照)
+ **IAM 管理者** - アクセスを管理するためのポリシーを作成します (「[AWS CodeCommit アイデンティティベースのポリシーの例](#security_iam_id-based-policy-examples)」を参照)

## アイデンティティを使用した認証
<a name="security_iam_authentication"></a>

認証とは、ID 認証情報 AWS を使用して にサインインする方法です。、IAM ユーザー AWS アカウントのルートユーザー、または IAM ロールを引き受けることで認証される必要があります。

 AWS IAM アイデンティティセンター (IAM Identity Center)、シングルサインオン認証、Google/Facebook 認証情報などの ID ソースからの認証情報を使用して、フェデレーティッド ID としてサインインできます。サインインの詳細については、「*AWS サインイン ユーザーガイド*」の「[AWS アカウントにサインインする方法](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)」を参照してください。

プログラムによるアクセスの場合、 は SDK と CLI AWS を提供してリクエストを暗号化して署名します。詳細については、「*IAM ユーザーガイド*」の「[API リクエストに対するAWS 署名バージョン 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html)」を参照してください。

### AWS アカウント ルートユーザー
<a name="security_iam_authentication-rootuser"></a>

 を作成するときは AWS アカウント、すべての AWS のサービス および リソースへの完全なアクセス権を持つ AWS アカウント *ルートユーザー*と呼ばれる 1 つのサインインアイデンティティから始めます。日常的なタスクには、ルートユーザーを使用しないことを強くお勧めします。ルートユーザー認証情報を必要とするタスクについては、「*IAM ユーザーガイド*」の「[ルートユーザー認証情報が必要なタスク](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)」を参照してください。

### IAM ユーザーとグループ
<a name="security_iam_authentication-iamuser"></a>

*[IAM ユーザー](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)*は、特定の個人やアプリケーションに対する特定のアクセス許可を持つアイデンティティです。長期認証情報を持つ IAM ユーザーの代わりに一時的な認証情報を使用することをお勧めします。詳細については、*IAM ユーザーガイド*の[「ID プロバイダーとのフェデレーションを使用して にアクセスする必要がある AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp)」を参照してください。

[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html)は、IAM ユーザーの集合を指定し、大量のユーザーに対するアクセス許可の管理を容易にします。詳細については、「*IAM ユーザーガイド*」の「[IAM ユーザーに関するユースケース](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html)」を参照してください。

### IAM ロール
<a name="security_iam_authentication-iamrole"></a>

*[IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)*は、特定のアクセス許可を持つアイデンティであり、一時的な認証情報を提供します。ユーザー[から IAM ロール (コンソール) に切り替えるか、 または API オペレーションを呼び出すことで、ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html)を引き受けることができます。 AWS CLI AWS 詳細については、「*IAM ユーザーガイド*」の「[ロールを引き受けるための各種方法](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html)」を参照してください。

IAM ロールは、フェデレーションユーザーアクセス、一時的な IAM ユーザーのアクセス許可、クロスアカウントアクセス、クロスサービスアクセス、および Amazon EC2 で実行するアプリケーションに役立ちます。詳細については、*IAM ユーザーガイド* の [IAM でのクロスアカウントリソースアクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) を参照してください。

## ポリシーを使用したアクセスの管理
<a name="security_iam_access-manage"></a>

でアクセスを制御する AWS には、ポリシーを作成し、ID AWS またはリソースにアタッチします。ポリシーは、ID またはリソースに関連付けられたときにアクセス許可を定義します。 は、プリンシパルがリクエストを行うときにこれらのポリシー AWS を評価します。ほとんどのポリシーは JSON ドキュメント AWS として に保存されます。JSON ポリシードキュメントの詳細については、「*IAM ユーザーガイド*」の「[JSON ポリシー概要](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json)」を参照してください。

管理者は、ポリシーを使用して、どの**プリンシパル**がどの**リソース**に対して、どのような**条件**で**アクション**を実行できるかを定義することで、誰が何にアクセスできるかを指定します。

デフォルトでは、ユーザーやロールにアクセス許可はありません。IAM 管理者は IAM ポリシーを作成してロールに追加し、このロールをユーザーが引き受けられるようにします。IAM ポリシーは、オペレーションの実行方法を問わず、アクセス許可を定義します。

### アイデンティティベースのポリシー
<a name="security_iam_access-manage-id-based-policies"></a>

アイデンティティベースのポリシーは、アイデンティティ (ユーザー、グループ、またはロール) にアタッチできる JSON アクセス許可ポリシードキュメントです。これらのポリシーは、アイデンティティがどのリソースに対してどのような条件下でどのようなアクションを実行できるかを制御します。アイデンティティベースポリシーの作成方法については、*IAM ユーザーガイド* の [カスタマー管理ポリシーでカスタム IAM アクセス許可を定義する](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) を参照してください。

アイデンティティベースのポリシーは、*インラインポリシー* (単一の ID に直接埋め込む) または*管理ポリシー* (複数の ID にアタッチされたスタンドアロンポリシー) にすることができます。管理ポリシーとインラインポリシーのいずれかを選択する方法については、「*IAM ユーザーガイド*」の「[管理ポリシーとインラインポリシーのいずれかを選択する](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html)」を参照してください。

### リソースベースのポリシー
<a name="security_iam_access-manage-resource-based-policies"></a>

リソースベースのポリシーは、リソースに添付する JSON ポリシードキュメントです。例としては、IAM *ロール信頼ポリシー*や Amazon S3 *バケットポリシー*などがあります。リソースベースのポリシーをサポートするサービスでは、サービス管理者はポリシーを使用して特定のリソースへのアクセスを制御できます。リソースベースのポリシーでは、[プリンシパルを指定する](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)必要があります。

リソースベースのポリシーは、そのサービス内にあるインラインポリシーです。リソースベースのポリシーでは、IAM の AWS マネージドポリシーを使用できません。

### アクセスコントロールリスト (ACL)
<a name="security_iam_access-manage-acl"></a>

アクセスコントロールリスト (ACL) は、どのプリンシパル (アカウントメンバー、ユーザー、またはロール) がリソースにアクセスするためのアクセス許可を持つかを制御します。ACL はリソースベースのポリシーに似ていますが、JSON ポリシードキュメント形式は使用しません。

Amazon S3、および Amazon VPC は AWS WAF、ACLs。ACL の詳細については、*Amazon Simple Storage Service デベロッパーガイド* の [アクセスコントロールリスト (ACL) の概要](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html) を参照してください。

### その他のポリシータイプ
<a name="security_iam_access-manage-other-policies"></a>

AWS は、より一般的なポリシータイプによって付与されるアクセス許可の上限を設定できる追加のポリシータイプをサポートしています。
+ **アクセス許可の境界** – アイデンティティベースのポリシーで IAM エンティティに付与することのできるアクセス許可の数の上限を設定します。詳細については、「*IAM ユーザーガイド*」の「[IAM エンティティのアクセス許可境界](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)」を参照してください。
+ **サービスコントロールポリシー (SCP)** - AWS Organizations内の組織または組織単位の最大のアクセス許可を指定します。詳細については、「*AWS Organizations ユーザーガイド*」の「[サービスコントロールポリシー](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)」を参照してください。
+ **リソースコントロールポリシー (RCP)** – は、アカウント内のリソースで利用できる最大数のアクセス許可を定義します。詳細については、「*AWS Organizations ユーザーガイド*」の「[リソースコントロールポリシー (RCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html)」を参照してください。
+ **セッションポリシー** – ロールまたはフェデレーションユーザーの一時セッションを作成する際にパラメータとして渡される高度なポリシーです。詳細については、「*IAM ユーザーガイド*」の「[セッションポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)」を参照してください。

### 複数のポリシータイプ
<a name="security_iam_access-manage-multiple-policies"></a>

1 つのリクエストに複数のタイプのポリシーが適用されると、結果として作成されるアクセス許可を理解するのがさらに難しくなります。が複数のポリシータイプが関与する場合にリクエストを許可するかどうか AWS を決定する方法については、*「IAM ユーザーガイド*」の[「ポリシー評価ロジック](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html)」を参照してください。

# の認証とアクセスコントロール AWS CodeCommit
<a name="auth-and-access-control"></a>

にアクセスするには、 認証情報 AWS CodeCommit が必要です。これらの認証情報には、Git 認証情報または Git 接続の作成に使用する SSH パブリックキーの管理に使用する CodeCommit リポジトリや IAM ユーザーなどの AWS リソースにアクセスするためのアクセス許可が必要です。以下のセクションでは、リソースへの安全なアクセスのために、[AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) と CodeCommit を役立てる方法について詳しく説明します。
+ [認証](#authentication)
+ [アクセスコントロール](#access-control)

## 認証
<a name="authentication"></a>

CodeCommit リポジトリは Git ベースで Git 認証情報を含む Git の基本機能をサポートしているので、CodeCommit で作業する場合は、IAM ユーザーを使用することをお勧めします。他のアイデンティティタイプで CodeCommit にアクセスすることができますが、その他のアイデンティティタイプは、以下に説明するように制限されることがあります。

アイデンティティタイプ
+ **IAM ユーザー** – [IAM ユーザー](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)は、単に特定のカスタムアクセス許可を持つ、Amazon Web Services アカウント内のアイデンティティです。例えば、IAM ユーザーは、CodeCommit リポジトリにアクセスするための Git 認証情報を作成および管理するためのアクセス許可を持つことができます。**以下は、CodeCommit での作業に推奨されるユーザータイプです。**IAM ユーザー名とパスワードを使用して、、 [AWS ディスカッションフォーラム](https://forums.aws.amazon.com/)[AWS マネジメントコンソール](https://console.aws.amazon.com/)、 [AWS サポート センター](https://console.aws.amazon.com/support/home#/)などの安全な AWS ウェブページにサインインできます。

  Git の認証情報を生成するか SSH パブリックキーを IAM ユーザーに関連付ける、または **git-remote-codecommit** をインストールして設定することができます。これらは、CodeCommit リポジトリと連携するように Git を設定する最も簡単な方法です。[Git 認証情報](setting-up-gc.md)で、IAM の静的ユーザー名とパスワードを生成します。HTTPS 接続のためのこれらの認証情報は、Git だけでなく、Git のユーザー名およびパスワード認証をサポートするサードパーティーツールでも使用します。SSH 接続では、SSH 認証用に Git および CodeCommit が使用するパブリックキーとプライベートキーのファイルをローカルマシンで作成します。パブリックキーを IAM ユーザーに関連付けて、プライベートキーをローカルマシンに保存します。**[git-remote-codecommit](setting-up-git-remote-codecommit.md)** は Git 自体を拡張するため、ユーザーの Git 認証情報を設定する必要はありません。

  また、各ユーザーの[アクセスキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html)を生成することができます。 AWS サービスにプログラムでアクセスするときは、いずれかの [AWS SDKs ](https://aws.amazon.com/tools/)または [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/) を使用してアクセスキーを使用します。SDK と CLI ツールでは、アクセスキーを使用してリクエストが暗号で署名されます。 AWS ツールを使用しない場合は、リクエストに自分で署名する必要があります。CodeCommit では、*署名バージョン 4* がサポートされています。これは、インバウンド API リクエストを認証するためのプロトコルです。リクエストの認証の詳細については、『[』の「](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)署名バージョン 4 の署名プロセス*AWS 全般のリファレンス*」を参照してください。
+ **Amazon Web Services アカウントのルートユーザー** – にサインアップするときに AWS、Amazon Web Services アカウントに関連付けられた E メールアドレスとパスワードを指定します。これらは *ルート認証情報*であり、これらの情報を使用すると、すべての AWS リソースへの完全なアクセスが可能になります。ルートアカウントのユーザーは、一部の CodeCommit 機能を利用できません。さらに、ルートアカウントで Git を使用する唯一の方法は、 をインストールして設定するか **git-remote-codecommit** (推奨）、 に含まれている AWS 認証情報ヘルパーを設定することです AWS CLI。ルートアカウントのユーザーは、Git 認証情報または SSH パブリック/プライベートキーペアを使用できません。これらの理由により、CodeCommit で作業するときにルートアカウントのユーザーを使用することはお勧めしません。
**重要**  
セキュリティ上の理由から、ルート認証情報は、 AWS アカウントへの完全なアクセス許可を持つ*管理者ユーザー* (*IAM ユーザー*) を作成するためにのみ使用することをお勧めします。その後、この管理者ユーザーを使用して、制限されたアクセス許可を持つ他の IAM ユーザーとロールを作成できます。詳細については、*[IAM ユーザーガイド]*で[[IAM ベストプラクティス]](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#create-iam-users)および[[管理者ユーザーおよびグループの作成]](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html)を参照してください。
+ **IAM Identity Center と IAM Identity Center のユーザー** – AWS IAM アイデンティティセンター の機能を拡張 AWS Identity and Access Management し、ユーザーの管理と AWS アカウント およびクラウドアプリケーションへのアクセスをまとめた一元的な場所を提供します。IAM Identity Center は、 AWSを使用するほとんどのユーザーにベストプラクティスとして推奨されていますが、現在のところ、Git 認証情報や SSH キーペアのメカニズムは提供されていません。これらのユーザーは、**git-remote-codecommit** をインストールして CodeCommit リポジトリのクローンをローカルに作成するように設定できますが、すべての統合開発環境 (IDE) が **git-remote-codecommit** を使用したクローン作成、プッシュ、またはプルをサポートしているわけではありません。

  ベストプラクティスとして、人間のユーザーが一時的な認証情報 AWS のサービス を使用して にアクセスするには、ID プロバイダーとのフェデレーションを使用する必要があります。

  *フェデレーティッド ID* は、エンタープライズディレクトリ、ウェブ ID プロバイダー、または ID Directory Service ソースの認証情報 AWS のサービス を使用して にアクセスするユーザーです。フェデレーテッドアイデンティティは、一時的な認証情報を提供するロールを引き受けます。

  アクセスを一元管理する場合は、 AWS IAM アイデンティティセンターをお勧めします。詳細については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[IAM アイデンティティセンターとは](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)」を参照してください。
+ **IAM ロール** – IAM ユーザーと同様に、[IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)は、アカウントに作成できる IAM アイデンティティで、特定のアクセス許可を付与できます。

  *[IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)*は、特定のアクセス許可を持つアイデンティであり、一時的な認証情報を提供します。ユーザー[から IAM ロール (コンソール) に切り替えるか、 または API オペレーションを呼び出すことで、ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html)を引き受けることができます。 AWS CLI AWS 詳細については、「*IAM ユーザーガイド*」の「[ロールを引き受けるための各種方法](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html)」を参照してください。

  IAM ロールは、フェデレーションユーザーアクセス、一時的な IAM ユーザーのアクセス許可、クロスアカウントアクセス、クロスサービスアクセス、および Amazon EC2 で実行するアプリケーションに役立ちます。詳細については、*IAM ユーザーガイド* の [IAM でのクロスアカウントリソースアクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) を参照してください。
**注記**  
 フェデレーティッドユーザーは、Git 認証情報または SSH パブリック/プライベートキーペアを使用できません。さらに、ユーザー設定はフェデレーティッドユーザーでは使用できません。フェデレーティッドアクセスを使用して接続を設定する方法については、「[git-remote-codecommit AWS CodeCommit を使用した への HTTPS 接続のセットアップ手順](setting-up-git-remote-codecommit.md)」を参照してください。

## アクセスコントロール
<a name="access-control"></a>

有効な認証情報があればリクエストを認証できますが、アクセス許可がなければ CodeCommit リソースの作成やアクセスはできません。たとえば、リポジトリの表示、コードのプッシュ、Git の認証情報の作成および管理などにはアクセス許可が必要です。

以下のセクションでは、CodeCommit のアクセス許可を管理する方法について説明します。最初に概要のセクションを読むことをお勧めします。
+ [CodeCommit リソースに対するアクセス許可の管理の概要](#auth-and-access-control-iam-access-control-identity-based)
+ [CodeCommit でのアイデンティティベースのポリシー (IAM ポリシー) の使用](auth-and-access-control-iam-identity-based-access-control.md)
+ [CodeCommit アクセス許可リファレンス](auth-and-access-control-permissions-reference.md)

## CodeCommit リソースに対するアクセス許可の管理の概要
<a name="auth-and-access-control-iam-access-control-identity-based"></a>

すべての AWS リソースは、Amazon Web Services アカウントによって所有されます。リソースを作成またはアクセスするためのアクセス許可は、アクセス許可ポリシーで管理されます。アカウント管理者は、IAM アイデンティティ (つまり、ユーザー、グループ、ロール) に許可ポリシーをアタッチできます。などの一部のサービスでは AWS Lambda、リソースへのアクセス許可ポリシーのアタッチもサポートされています。

**注記**  
*アカウント管理者* (または管理者ユーザー) は、管理者権限を持つユーザーです。詳細については、*IAM ユーザーガイド*の [IAM ベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)を参照してください。

アクセス許可を付与する場合、アクセス許可を取得するユーザー、取得するアクセス許可の対象となるリソース、およびそれらのリソースに対して許可される特定のアクションを決定します。

**Topics**
+ [CodeCommit のリソースとオペレーション](#arn-formats)
+ [リソース所有権についての理解](#understanding-resource-ownership)
+ [リソースへのアクセスの管理](#managing-access-resources)
+ [CodeCommit でのリソースのスコープ](#resource-scoping)
+ [ポリシー要素 (リソース、アクション、効果、プリンシパル) の指定](#actions-effects-principals)
+ [ポリシーでの条件を指定する](#policy-conditions)

### CodeCommit のリソースとオペレーション
<a name="arn-formats"></a>

CodeCommit では、プライマリリソースがリポジトリとなります。リソースにはそれぞれ、一意の Amazon リソースネーム (ARN) が関連付けられています。ポリシーで Amazon リソースネーム (ARN) を使用して、ポリシーを適用するリソースを識別します。ARN の詳細については、[AWS](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)の「*Amazon リソースネーム (ARN) およびAmazon Web Services 全般のリファレンスサービスの名前空間*」を参照してください。CodeCommit では、現在、サブリソースと呼ばれる他のリソースタイプはサポートされていません。

次の表で、CodeCommit リソースを指定する方法について説明します。


| リソースタイプ | ARN 形式 | 
| --- | --- | 
| リポジトリ |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  すべての CodeCommit リポジトリ  |  arn:aws:codecommit:\$1  | 
|  指定された 内の指定されたアカウントが所有するすべての CodeCommit リポジトリ AWS リージョン  |  arn:aws:codecommit:*region*:*account-id*:\$1  | 

**注記**  
ほとんどの AWS サービスは、ARN のARNs。ただし、CodeCommit では、リソースパターンおよびルールで完全一致が必要です。イベントパターンの作成時に正しい ARN 文字を使用して、リソース内の ARN 構文とそれらの文字が一致する必要があります。

たとえば、以下の要領で ARN を使用して、ステートメント内で特定のリポジトリ (*MyDemoRepo*) を指定することができます。

```
"Resource": "arn:aws:codecommit:us-west-2:111111111111:MyDemoRepo"
```

特定のアカウントに属するすべてのリポジトリを指定するには、以下のようにワイルドカード文字 (\$1) を使用します。

```
"Resource": "arn:aws:codecommit:us-west-2:111111111111:*"
```

すべてのリソースを指定する場合、または特定の API アクションが ARN をサポートしていない場合は、以下の要領で、`Resource` エレメント内でワイルドカード文字 (\$1) を使用します。

```
"Resource": "*"
```

また、ワイルドカード文字 (\$1) を使用して、リポジトリ名の一部に一致するすべてのリソースを指定できます。例えば、以下の ARN は、`us-east-2` AWS リージョン内の Amazon Web Services アカウント `111111111111` に登録されている名前 `MyDemo` で始まる CodeCommit リポジトリを指定しています。

```
arn:aws:codecommit:us-east-2:111111111111:MyDemo*
```

 CodeCommit リソースで動作する使用可能なオペレーションのリストについては、[CodeCommit アクセス許可リファレンス](auth-and-access-control-permissions-reference.md) を参照してください。

### リソース所有権についての理解
<a name="understanding-resource-ownership"></a>

Amazon Web Services アカウントは、誰がリソースを作成したかにかかわらず、アカウントで作成されたリソースを所有します。具体的には、リソース所有者は、リソースの作成リクエストを認証する[プリンシパルエンティティ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) (ルートアカウント、IAM ユーザー、または IAM ロール) の Amazon Web Services アカウントです。以下の例では、このしくみを示しています。
+ Amazon Web Services アカウントに IAM ユーザーを作成し、そのユーザーに CodeCommit リソースを作成するためのアクセス許可を付与する場合、そのユーザーは CodeCommit リソースを作成できます。ただし、ユーザーが属する Amazon Web Services アカウントは CodeCommit リソースを所有しているとします。
+ Amazon Web Services アカウントのルートアカウントの認証情報を使用してルールを作成する場合、 Amazon Web Services アカウントは CodeCommit リソースの所有者です。
+ CodeCommit リソースを作成するためのアクセス許可を持つ Amazon Web Services アカウントに IAM ロールを作成する場合は、ロールを引き受けることのできるいずれのユーザーも CodeCommit リソースを作成できます。ロールが属する Amazon Web Services アカウントは CodeCommit リソースを所有しているとします。

### リソースへのアクセスの管理
<a name="managing-access-resources"></a>

 AWS リソースへのアクセスを管理するには、アクセス許可ポリシーを使用します。アクセスポリシー**は、誰が何に対するアクセス権を持っているのかを説明します。以下のセクションで、アクセス権限のポリシーを作成するためのオプションについて説明します。

**注記**  
このセクションでは、CodeCommit のコンテキストでの IAM の使用について説明します。これは、IAM サービスに関する詳細情報を取得できません。詳細については、*IAM ユーザーガイド*の [IAM とは](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)を参照してください。IAM ポリシー構文の詳細と説明については、*IAM ユーザーガイド*の [IAM ポリシーの参照](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)を参照してください。

IAM アイデンティティにアタッチされたアクセス許可ポリシーは、アイデンティティベースのポリシー (IAM ポリシー) と呼ばれます。リソースにアタッチされたアクセス許可ポリシーは、リソースベースのポリシーと呼ばれます。現在、CodeCommit では、アイデンティティベースのポリシー (IAM ポリシー) のみがサポートされています。

**Topics**
+ [アイデンティティベースのポリシー (IAM ポリシー)](#identity-based-policies)
+ [リソースベースのポリシー](#resource-based-policies-overview)

#### アイデンティティベースのポリシー (IAM ポリシー)
<a name="identity-based-policies"></a>

 AWS リソースへのアクセスを管理するには、IAM ID にアクセス許可ポリシーをアタッチします。CodeCommit で、アイデンティティベースのポリシーを使用して、リポジトリへのアクセスを制御します。例えば、次の操作を実行できます。
+ **アカウントのユーザーまたはグループにアクセス許可ポリシーをアタッチする** – CodeCommit コンソールに CodeCommit リソースを表示するアクセス許可をユーザーに付与するには、ユーザーまたはユーザーが属するグループにアイデンティティベースのアクセス許可ポリシーをアタッチします。
+ **アクセス許可ポリシーをロールにアタッチする (クロスアカウントのアクセス許可を付与)** – クロスアカウントアクセスを付与するときなど、委任には、リソースを所有するアカウント (信頼するアカウント) と、リソースへアクセスする必要のあるユーザーを含むアカウント (信頼されたアカウント) の間に信頼を設定することが含まれます。アクセス許可ポリシーは、リソースに対して目的のタスクを実行するために必要なアクセス許可をロールのユーザーに付与します。信頼ポリシーは、どの信頼されたアカウントのユーザーに、ロールを引き受ける権限を与えるかを指定します。詳細については、[IAM の用語と概念](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html)を参照してください。

  クロスアカウントのアクセス許可を付与するには、アイデンティティベースのアクセス許可ポリシーを IAM ロールにアタッチします。たとえば、アカウント A の管理者は、次のように別の Amazon Web Services アカウント (アカウント B など) または AWS サービスにクロスアカウントアクセス許可を付与するロールを作成できます。

  1. アカウント A の管理者は、IAM ロールを作成して、アカウント A のリソースに許可を付与するロールに許可ポリシーをアタッチします。

  1. アカウント A の管理者は、アカウント B をそのロールを引き受けるプリンシパルとして識別するロールに、信頼ポリシーをアタッチします。

  1. アカウント B の管理者は、アカウント B のユーザーにロールを引き受けるアクセス許可を委任できます。これにより、アカウント B のユーザーがアカウント A のリソースを作成またはアクセスできるようになります。ロールを引き受けるアクセス許可を AWS サービスに付与する場合、信頼ポリシーのプリンシパルも AWS サービスプリンシパルになることができます。詳細については、[IAM の用語と概念](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html)の Delegation (委任) を参照してください。

  IAM を使用した許可委任の詳細については、*IAM ユーザーガイド*の[アクセス管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)を参照してください。



次のポリシーの例では、ユーザーが *MyDemoRepo* という名前のリポジトリでブランチを作成することを許可します。

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

****  

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

------

アカウントのユーザーがアクセスできる呼び出しとリソースを制限するには、特定の IAM ポリシーを作成した後、IAM ユーザーにそれらのポリシーをアタッチします。IAM ロールを作成する方法、および CodeCommit の IAM ポリシーステートメントの例を調べる方法の詳細については、[カスタマー管理のアイデンティティポリシーの例](customer-managed-policies.md#customer-managed-policies-identity) を参照してください。

#### リソースベースのポリシー
<a name="resource-based-policies-overview"></a>

Amazon S3 などのいくつかのサービスでは、リソースベースのアクセス許可ポリシーもサポートされています。たとえば、リソースベースのポリシーを S3 バケットにアタッチして、そのバケットに対するアクセス権限を管理できます。CodeCommit はリソースベースのポリシーをサポートしていませんが、タグを使用してリソースを識別し、IAM ポリシーで使用できます。タグベースのポリシーの例については、[アイデンティティベースのポリシー (IAM ポリシー)](#identity-based-policies) を参照してください。

### CodeCommit でのリソースのスコープ
<a name="resource-scoping"></a>

CodeCommit では、[CodeCommit のリソースとオペレーション](#arn-formats) で説明されているように、アイデンティティベースのポリシーとリソースへのアクセス許可の範囲を指定できます。ただし、リソースへの `ListRepositories` アクセス許可の範囲を指定することはできません。代わりに、すべてのリソースを範囲とします (ワイルドカード `*` を使用)。そうしない場合、そのアクションは失敗します。

他のすべての CodeCommit アクセス許可は、リソースにスコープできます。

### ポリシー要素 (リソース、アクション、効果、プリンシパル) の指定
<a name="actions-effects-principals"></a>

リソースへのユーザーのアクセスを許可または拒否するポリシー、または、それらのリソースに対してユーザーが特定のアクションを実行するのを許可または拒否するポリシーを作成できます。CodeCommit は、ユーザーが CodeCommit コンソール、 SDKs、、 AWS CLIまたはそれらの API を直接呼び出すかどうかにかかわらず、サービスを操作する方法を定義する一連のパブリック APIs オペレーションを定義します。これらの API オペレーションを実行するためのアクセス許可を付与するために、CodeCommit ではポリシーに一連のアクションを定義できます。

API オペレーションによっては、複数のアクションに対するアクセス許可が必要になる場合があります。リソースおよび API オペレーションに関する詳細については、「[CodeCommit のリソースとオペレーション](#arn-formats)」および「[CodeCommit アクセス許可リファレンス](auth-and-access-control-permissions-reference.md)」を参照してください。

以下に、ポリシーの基本的な要素を示します。
+ **リソース** – ポリシーを適用するリソースを識別するには、Amazon リソースネーム (ARN) を使用します。詳細については、「[CodeCommit のリソースとオペレーション](#arn-formats)」を参照してください。
+ **アクション** – 許可または拒否するリソースオペレーションを識別するには、アクションキーワードを使用します。例えば、指定された `Effect` に応じて、`codecommit:GetBranch` アクセス許可は、CodeCommit リポジトリのブランチの詳細を取得する `GetBranch` オペレーションをユーザーが実行するのを許可または拒否します。
+ **効果** – ユーザーが特定のアクションをリクエストする際の効果の実行について、許可または拒否のいずれかを指定します。リソースへのアクセスを明示的に許可していない場合、アクセスは暗黙的に拒否されます。また、明示的にリソースへのアクセスを拒否すると、別のポリシーによってアクセスが許可されている場合でも、ユーザーはリソースにアクセスできなくなります。
+ **プリンシパル** – CodeCommit がサポートしている唯一のポリシータイプであるアイデンティティベースのポリシー (IAM ポリシー) で、ポリシーがアタッチされているユーザーが黙示的なプリンシパルとなります。

IAM ポリシーの構文の詳細については、*IAM ユーザーガイド*の [IAM ポリシーリファレンス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)を参照してください。

すべての CodeCommit API アクションとそれらが適用されるリソースの表については、[CodeCommit アクセス許可リファレンス](auth-and-access-control-permissions-reference.md) を参照してください。

### ポリシーでの条件を指定する
<a name="policy-conditions"></a>

アクセス許可を付与するとき、IAM のアクセスポリシー言語を使用してポリシーの適用条件を指定できます。たとえば、特定の日付の後にのみ適用されるポリシーが必要になる場合があります。ポリシー言語での条件の指定の詳細については、*IAM ユーザーガイド*の[条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Condition)および[ポリシーの文法](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html)を参照してください。

条件を表すには、あらかじめ定義された条件キーを使用します。CodeCommit に固有の条件キーはありません。ただし、必要に応じて使用できる AWS広範な条件キーがあります。 AWS全体のキーの完全なリストについては、*IAM ユーザーガイド*の[「条件に使用可能なキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys)」を参照してください。

# CodeCommit でのアイデンティティベースのポリシー (IAM ポリシー) の使用
<a name="auth-and-access-control-iam-identity-based-access-control"></a>

以下のアイデンティティベースのポリシーの例では、アカウント管理者が IAM ID (ユーザー、グループ、およびロール) にアクセス許可ポリシーをアタッチし、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*"
      ]
    }
  ]
}
```

------

このポリシーには、`MyDestinationRepo` リージョンにある `MyDemo` という名前の CodeCommit リポジトリおよび **us-east-2** という名前で始まるすべての 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) マネージドポリシーまたはそれに相当するユーザーまたはグループにアタッチできます。

ID ベースのポリシーによってユーザーに付与されるアクセス許可に加えて、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 コンソールには、サインイン AWS リージョン している で Amazon Web Services アカウントのリポジトリのリストを表示する`ListRepositories`アクセス許可が必要です。このコンソールには、大文字と小文字を区別しない検索をリソースに対して迅速に実行するための [**Go to resource (リソースに移動)**] 機能も含まれています。この検索は、サインイン AWS リージョン している の Amazon Web Services アカウントで実行されます。次のリソースは、以下のサービス全体で表示されます。
+ AWS CodeBuild: ビルドプロジェクト
+ AWS CodeCommit: リポジトリ
+ AWS CodeDeploy: アプリケーション
+ AWS CodePipeline: パイプライン

この検索をすべてのサービスのリソースにわたって実行するには、次のアクセス権限が必要です。
+ CodeBuild: `ListProjects`
+ CodeCommit: `ListRepositories`
+ CodeDeploy: `ListApplications`
+ CodePipeline: `ListPipelines`

あるサービスに対するアクセス権限がない場合、そのサービスのリソースに関して結果は返されません。リソースを表示するためのアクセス権限がある場合でも、特定のリソースの表示に対する明示的な `Deny` がある場合にはそれらのリソースは返されません。

# AWS CodeCommit の マネージドポリシー
<a name="security-iam-awsmanpol"></a>

ユーザー、グループ、ロールにアクセス許可を追加するには、自分でポリシーを記述するよりも AWS 管理ポリシーを使用する方が簡単です。チームに必要な権限のみを提供する [IAM カスタマーマネージドポリシーを作成する](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)には時間と専門知識が必要です。すぐに開始するには、 AWS マネージドポリシーを使用できます。これらのポリシーは、一般的なユースケースをターゲット範囲に含めており、 AWS アカウントで利用できます。 AWS 管理ポリシーの詳細については、*IAM ユーザーガイド*の「 [AWS 管理ポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)」を参照してください。

AWS サービスは、 AWS 管理ポリシーを維持および更新します。 AWS 管理ポリシーのアクセス許可は変更できません。サービスでは新しい機能を利用できるようにするために、 AWS マネージドポリシーに権限が追加されることがあります。この種類の更新はポリシーがアタッチされている、すべてのアイデンティティ (ユーザー、グループおよびロール) に影響を与えます。新しい機能が立ち上げられた場合や、新しいオペレーションが使用可能になった場合に、各サービスが AWS マネージドポリシーを更新する可能性が最も高くなります。サービスは AWS 管理ポリシーからアクセス許可を削除しないため、ポリシーの更新によって既存のアクセス許可が損なわれることはありません。

さらに、 は、複数の サービスにまたがるジョブ関数の 管理ポリシー AWS をサポートしています。例えば、**ReadOnlyAccess** AWS 管理ポリシーは、すべての AWS サービスとリソースへの読み取り専用アクセスを提供します。サービスが新機能を起動すると、 は新しいオペレーションとリソースの読み取り専用アクセス許可 AWS を追加します。ジョブ機能のポリシーの一覧および詳細については、「*IAM ユーザーガイド*」の「[AWS のジョブ機能のマネージドポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)」を参照してください。

AWS は、 によって作成および管理されるスタンドアロン IAM ポリシーを提供することで、多くの一般的なユースケースに対処します AWS。これらの AWS 管理ポリシーは、一般的なユースケースに必要なアクセス許可を付与します。また、CodeCommit の管理ポリシーは、該当するポリシーが付与されたユーザーの責任の必要に応じて、IAM、Amazon SNS、および Amazon CloudWatch Events などの他のサービスのオペレーションを実行するアクセス許可を提供します。例えば、AWSCodeCommitFullAccess ポリシーは管理レベルのユーザーポリシーで、このポリシーを持つユーザーは、リポジトリの CloudWatch Events ルール (名前にプレフィックス `codecommit` が付いているルール) とリポジトリ関連イベントに関する通知の Amazon SNS トピック (名前にプレフィックス `codecommit` が付いているトピック) を作成および管理でき、また、CodeCommit のリポジトリを管理できます。

アカウントのユーザーにアタッチできる次の AWS 管理ポリシーは、CodeCommit に固有です。

**Topics**
+ [AWS マネージドポリシー: AWSCodeCommitFullAccess](#managed-policies-full)
+ [AWS マネージドポリシー: AWSCodeCommitPowerUser](#managed-policies-poweruser)
+ [AWS マネージドポリシー: AWSCodeCommitReadOnly](#managed-policies-read)
+ [CodeCommit の管理ポリシーと通知](#notifications-permissions)
+ [AWS CodeCommit マネージドポリシーと Amazon CodeGuru Reviewer](#codeguru-permissions)
+ [AWS 管理ポリシーに対する CodeCommit の更新](#security-iam-awsmanpol-updates)

## AWS マネージドポリシー: AWSCodeCommitFullAccess
<a name="managed-policies-full"></a>

`AWSCodeCommitFullAccess` ポリシーを IAM アイデンティティにアタッチできます。このポリシーにより、CodeCommit へのフルアクセスが付与されます。リポジトリを削除する権限も含め、Amazon Web Services アカウントの CodeCommit リポジトリおよび関連するリソースを完全に制御する権限を付与したい管理レベルのユーザーにのみこのポリシーを適用します。

AWSCodeCommitFullAccess ポリシーには、次のポリシーステートメントが含まれます。

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

****  

```
    {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "codecommit:*"
          ],
          "Resource": "*"
        },
        {
          "Sid": "CloudWatchEventsCodeCommitRulesAccess",
          "Effect": "Allow",
          "Action": [
            "events:DeleteRule",
            "events:DescribeRule",
            "events:DisableRule",
            "events:EnableRule",
            "events:PutRule",
            "events:PutTargets",
            "events:RemoveTargets",
            "events:ListTargetsByRule"
          ],
          "Resource": "arn:aws:events:*:*:rule/codecommit*"
        },
        {
          "Sid": "SNSTopicAndSubscriptionAccess",
          "Effect": "Allow",
          "Action": [
            "sns:CreateTopic",
            "sns:DeleteTopic",
            "sns:Subscribe",
            "sns:Unsubscribe",
            "sns:SetTopicAttributes"
          ],
          "Resource": "arn:aws:sns:*:*:codecommit*"
        },
        {
          "Sid": "SNSTopicAndSubscriptionReadAccess",
          "Effect": "Allow",
          "Action": [
            "sns:ListTopics",
            "sns:ListSubscriptionsByTopic",
            "sns:GetTopicAttributes"
          ],
          "Resource": "*"
        },
        {
          "Sid": "LambdaReadOnlyListAccess",
          "Effect": "Allow",
          "Action": [
            "lambda:ListFunctions"
          ],
          "Resource": "*"
        },
        {
          "Sid": "IAMReadOnlyListAccess",
          "Effect": "Allow",
          "Action": [
            "iam:ListUsers"
          ],
          "Resource": "*"
        },
        {
          "Sid": "IAMReadOnlyConsoleAccess",
          "Effect": "Allow",
          "Action": [
            "iam:ListAccessKeys",
            "iam:ListSSHPublicKeys",
            "iam:ListServiceSpecificCredentials"
          ],
          "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
          "Sid": "IAMUserSSHKeys",
          "Effect": "Allow",
          "Action": [
            "iam:DeleteSSHPublicKey",
            "iam:GetSSHPublicKey",
            "iam:ListSSHPublicKeys",
            "iam:UpdateSSHPublicKey",
            "iam:UploadSSHPublicKey"
          ],
          "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
          "Sid": "IAMSelfManageServiceSpecificCredentials",
          "Effect": "Allow",
          "Action": [
            "iam:CreateServiceSpecificCredential",
            "iam:UpdateServiceSpecificCredential",
            "iam:DeleteServiceSpecificCredential",
            "iam:ResetServiceSpecificCredential"
          ],
          "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
          "Sid": "CodeStarNotificationsReadWriteAccess",
          "Effect": "Allow",
          "Action": [
            "codestar-notifications:CreateNotificationRule",
            "codestar-notifications:DescribeNotificationRule",
            "codestar-notifications:UpdateNotificationRule",
            "codestar-notifications:DeleteNotificationRule",
            "codestar-notifications:Subscribe",
            "codestar-notifications:Unsubscribe"
          ],
          "Resource": "*",
          "Condition": {
            "ArnLike": {
              "codestar-notifications:NotificationsForResource": "arn:aws:iam::*:role/Service*"
            }
          }
        },
        {
          "Sid": "CodeStarNotificationsListAccess",
          "Effect": "Allow",
          "Action": [
            "codestar-notifications:ListNotificationRules",
            "codestar-notifications:ListTargets",
            "codestar-notifications:ListTagsforResource",
            "codestar-notifications:ListEventTypes"
          ],
          "Resource": "*"
        },
        {
          "Sid": "CodeStarNotificationsSNSTopicCreateAccess",
          "Effect": "Allow",
          "Action": [
            "sns:CreateTopic",
            "sns:SetTopicAttributes"
          ],
          "Resource": "arn:aws:sns:*:*:codestar-notifications*"
        },
        {
          "Sid": "AmazonCodeGuruReviewerFullAccess",
          "Effect": "Allow",
          "Action": [
            "codeguru-reviewer:AssociateRepository",
            "codeguru-reviewer:DescribeRepositoryAssociation",
            "codeguru-reviewer:ListRepositoryAssociations",
            "codeguru-reviewer:DisassociateRepository",
            "codeguru-reviewer:DescribeCodeReview",
            "codeguru-reviewer:ListCodeReviews"
          ],
          "Resource": "*"
        },
        {
          "Sid": "AmazonCodeGuruReviewerSLRCreation",
          "Action": "iam:CreateServiceLinkedRole",
          "Effect": "Allow",
          "Resource": "arn:aws:iam::*:role/aws-service-role/codeguru-reviewer.amazonaws.com/AWSServiceRoleForAmazonCodeGuruReviewer",
          "Condition": {
            "StringLike": {
              "iam:AWSServiceName": "codeguru-reviewer.amazonaws.com"
            }
          }
        },
        {
          "Sid": "CloudWatchEventsManagedRules",
          "Effect": "Allow",
          "Action": [
            "events:PutRule",
            "events:PutTargets",
            "events:DeleteRule",
            "events:RemoveTargets"
          ],
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "events:ManagedBy": "codeguru-reviewer.amazonaws.com"
            }
          }
        },
        {
          "Sid": "CodeStarNotificationsChatbotAccess",
          "Effect": "Allow",
          "Action": [
            "chatbot:DescribeSlackChannelConfigurations",
            "chatbot:ListMicrosoftTeamsChannelConfigurations"
          ],
          "Resource": "*"
        },
        {
            "Sid": "CodeStarConnectionsReadOnlyAccess",
            "Effect": "Allow",
            "Action": [
                "codestar-connections:ListConnections",
                "codestar-connections:GetConnection"
            ],
            "Resource": "arn:aws:codestar-connections:*:*:connection/*"
        }
      ]
    }
```

------

## AWS マネージドポリシー: AWSCodeCommitPowerUser
<a name="managed-policies-poweruser"></a>

`AWSCodeCommitPowerUser` ポリシーを IAM アイデンティティにアタッチできます。このポリシーにより、ユーザーは CodeCommit およびリポジトリ関連のリソースのすべての機能にアクセスできます。ただし、CodeCommit リポジトリを削除したり、Amazon CloudWatch Events などの他の AWS サービスでリポジトリ関連のリソースを作成または削除したりすることはできません。ほとんどのユーザーにこのポリシーを適用することをお勧めします。

AWSCodeCommitPowerUser ポリシーには、次のポリシーステートメントが含まれます。

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

****  

```
    {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "codecommit:AssociateApprovalRuleTemplateWithRepository",
            "codecommit:BatchAssociateApprovalRuleTemplateWithRepositories",
            "codecommit:BatchDisassociateApprovalRuleTemplateFromRepositories",
            "codecommit:BatchGet*",
            "codecommit:BatchDescribe*",
            "codecommit:Create*",
            "codecommit:DeleteBranch",
            "codecommit:DeleteFile",
            "codecommit:Describe*",
            "codecommit:DisassociateApprovalRuleTemplateFromRepository",
            "codecommit:EvaluatePullRequestApprovalRules",
            "codecommit:Get*",
            "codecommit:List*",
            "codecommit:Merge*",
            "codecommit:OverridePullRequestApprovalRules",
            "codecommit:Put*",
            "codecommit:Post*",
            "codecommit:TagResource",
            "codecommit:Test*",
            "codecommit:UntagResource",
            "codecommit:Update*",
            "codecommit:GitPull",
            "codecommit:GitPush"
          ],
          "Resource": "*"
        },
        {
          "Sid": "CloudWatchEventsCodeCommitRulesAccess",
          "Effect": "Allow",
          "Action": [
            "events:DeleteRule",
            "events:DescribeRule",
            "events:DisableRule",
            "events:EnableRule",
            "events:PutRule",
            "events:PutTargets",
            "events:RemoveTargets",
            "events:ListTargetsByRule"
          ],
          "Resource": "arn:aws:events:*:*:rule/codecommit*"
        },
        {
          "Sid": "SNSTopicAndSubscriptionAccess",
          "Effect": "Allow",
          "Action": [
            "sns:Subscribe",
            "sns:Unsubscribe"
          ],
          "Resource": "arn:aws:sns:*:*:codecommit*"
        },
        {
          "Sid": "SNSTopicAndSubscriptionReadAccess",
          "Effect": "Allow",
          "Action": [
            "sns:ListTopics",
            "sns:ListSubscriptionsByTopic",
            "sns:GetTopicAttributes"
          ],
          "Resource": "*"
        },
        {
          "Sid": "LambdaReadOnlyListAccess",
          "Effect": "Allow",
          "Action": [
            "lambda:ListFunctions"
          ],
          "Resource": "*"
        },
        {
          "Sid": "IAMReadOnlyListAccess",
          "Effect": "Allow",
          "Action": [
            "iam:ListUsers"
          ],
          "Resource": "*"
        },
        {
          "Sid": "IAMReadOnlyConsoleAccess",
          "Effect": "Allow",
          "Action": [
            "iam:ListAccessKeys",
            "iam:ListSSHPublicKeys",
            "iam:ListServiceSpecificCredentials"
          ],
          "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
          "Sid": "IAMUserSSHKeys",
          "Effect": "Allow",
          "Action": [
            "iam:DeleteSSHPublicKey",
            "iam:GetSSHPublicKey",
            "iam:ListSSHPublicKeys",
            "iam:UpdateSSHPublicKey",
            "iam:UploadSSHPublicKey"
          ],
          "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
          "Sid": "IAMSelfManageServiceSpecificCredentials",
          "Effect": "Allow",
          "Action": [
            "iam:CreateServiceSpecificCredential",
            "iam:UpdateServiceSpecificCredential",
            "iam:DeleteServiceSpecificCredential",
            "iam:ResetServiceSpecificCredential"
          ],
          "Resource": "arn:aws:iam::*:user/${aws:username}"
        },
        {
          "Sid": "CodeStarNotificationsReadWriteAccess",
          "Effect": "Allow",
          "Action": [
            "codestar-notifications:CreateNotificationRule",
            "codestar-notifications:DescribeNotificationRule",
            "codestar-notifications:UpdateNotificationRule",
            "codestar-notifications:Subscribe",
            "codestar-notifications:Unsubscribe"
          ],
          "Resource": "*",
          "Condition": {
            "ArnLike": {
              "codestar-notifications:NotificationsForResource": "arn:aws:iam::*:role/Service*"
            }
          }
        },
        {
          "Sid": "CodeStarNotificationsListAccess",
          "Effect": "Allow",
          "Action": [
            "codestar-notifications:ListNotificationRules",
            "codestar-notifications:ListTargets",
            "codestar-notifications:ListTagsforResource",
            "codestar-notifications:ListEventTypes"
          ],
          "Resource": "*"
        },
        {
          "Sid": "AmazonCodeGuruReviewerFullAccess",
          "Effect": "Allow",
          "Action": [
            "codeguru-reviewer:AssociateRepository",
            "codeguru-reviewer:DescribeRepositoryAssociation",
            "codeguru-reviewer:ListRepositoryAssociations",
            "codeguru-reviewer:DisassociateRepository",
            "codeguru-reviewer:DescribeCodeReview",
            "codeguru-reviewer:ListCodeReviews"
          ],
          "Resource": "*"
        },
        {
          "Sid": "AmazonCodeGuruReviewerSLRCreation",
          "Action": "iam:CreateServiceLinkedRole",
          "Effect": "Allow",
          "Resource": "arn:aws:iam::*:role/aws-service-role/codeguru-reviewer.amazonaws.com/AWSServiceRoleForAmazonCodeGuruReviewer",
          "Condition": {
            "StringLike": {
              "iam:AWSServiceName": "codeguru-reviewer.amazonaws.com"
            }
          }
        },
        {
          "Sid": "CloudWatchEventsManagedRules",
          "Effect": "Allow",
          "Action": [
            "events:PutRule",
            "events:PutTargets",
            "events:DeleteRule",
            "events:RemoveTargets"
          ],
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "events:ManagedBy": "codeguru-reviewer.amazonaws.com"
            }
          }
        },
        {
          "Sid": "CodeStarNotificationsChatbotAccess",
          "Effect": "Allow",
          "Action": [
            "chatbot:DescribeSlackChannelConfigurations",
            "chatbot:ListMicrosoftTeamsChannelConfigurations"
          ],
          "Resource": "*"
        },
        {
            "Sid": "CodeStarConnectionsReadOnlyAccess",
            "Effect": "Allow",
            "Action": [
                "codestar-connections:ListConnections",
                "codestar-connections:GetConnection"
            ],
            "Resource": "arn:aws:codestar-connections:*:*:connection/*"
        }
      ]
    }
```

------

## AWS マネージドポリシー: AWSCodeCommitReadOnly
<a name="managed-policies-read"></a>

`AWSCodeCommitReadOnly` ポリシーを IAM アイデンティティにアタッチできます。このポリシーは、他の AWS サービスの CodeCommit およびリポジトリ関連のリソースへの読み取り専用アクセスを付与し、独自の CodeCommit 関連のリソース (リポジトリへのアクセス時に IAM ユーザーが使用する Git 認証情報や SSH キーなど) を作成および管理できるようにします。リポジトリのコンテンツを読み込む機能 (コンテンツを変更させない) を付与したいユーザーにこのポリシーを適用します。

AWSCodeCommitReadOnly ポリシーには、次のポリシーステートメントが含まれます。

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

****  

```
    { 
       "Version":"2012-10-17",		 	 	 
       "Statement":[ 
          { 
             "Effect":"Allow",
             "Action":[ 
                "codecommit:BatchGet*",
                "codecommit:BatchDescribe*",
                "codecommit:Describe*",
                "codecommit:EvaluatePullRequestApprovalRules",
                "codecommit:Get*",
                "codecommit:List*",
                "codecommit:GitPull"
             ],
             "Resource":"*"
          },
          { 
             "Sid":"CloudWatchEventsCodeCommitRulesReadOnlyAccess",
             "Effect":"Allow",
             "Action":[ 
                "events:DescribeRule",
                "events:ListTargetsByRule"
             ],
             "Resource":"arn:aws:events:*:*:rule/codecommit*"
          },
          { 
             "Sid":"SNSSubscriptionAccess",
             "Effect":"Allow",
             "Action":[ 
                "sns:ListTopics",
                "sns:ListSubscriptionsByTopic",
                "sns:GetTopicAttributes"
             ],
             "Resource":"*"
          },
          { 
             "Sid":"LambdaReadOnlyListAccess",
             "Effect":"Allow",
             "Action":[ 
                "lambda:ListFunctions"
             ],
             "Resource":"*"
          },
          { 
             "Sid":"IAMReadOnlyListAccess",
             "Effect":"Allow",
             "Action":[ 
                "iam:ListUsers"
             ],
             "Resource":"*"
          },
          { 
             "Sid":"IAMReadOnlyConsoleAccess",
             "Effect":"Allow",
             "Action":[ 
                "iam:ListAccessKeys",
                "iam:ListSSHPublicKeys",
                "iam:ListServiceSpecificCredentials",
                "iam:GetSSHPublicKey"
             ],
             "Resource":"arn:aws:iam::*:user/${aws:username}"
          },
          { 
             "Sid":"CodeStarNotificationsReadOnlyAccess",
             "Effect":"Allow",
             "Action":[ 
                "codestar-notifications:DescribeNotificationRule"
             ],
             "Resource":"*",
             "Condition":{ 
                "ArnLike":{ 
                   "codestar-notifications:NotificationsForResource":"arn:aws:codecommit:us-east-2:111122223333:*"
                }
             }
          },
          { 
             "Sid":"CodeStarNotificationsListAccess",
             "Effect":"Allow",
             "Action":[ 
                "codestar-notifications:ListNotificationRules",
                "codestar-notifications:ListEventTypes",
                "codestar-notifications:ListTargets"
             ],
             "Resource":"*"
          },
          {
             "Sid": "AmazonCodeGuruReviewerReadOnlyAccess",
             "Effect": "Allow",
             "Action": [
                "codeguru-reviewer:DescribeRepositoryAssociation",
                "codeguru-reviewer:ListRepositoryAssociations",
                "codeguru-reviewer:DescribeCodeReview",
                "codeguru-reviewer:ListCodeReviews"
             ],
             "Resource": "*"
          },
          {
            "Sid": "CodeStarConnectionsReadOnlyAccess",
            "Effect": "Allow",
            "Action": [
                "codestar-connections:ListConnections",
                "codestar-connections:GetConnection"
            ],
            "Resource": "arn:aws:codestar-connections:*:*:connection/*"
        }
    ]
}
```

------

## CodeCommit の管理ポリシーと通知
<a name="notifications-permissions"></a>

AWS CodeCommit は、リポジトリへの重要な変更をユーザーに通知できる通知をサポートしています。CodeCommit の管理ポリシーには、通知機能のポリシーステートメントが含まれます。詳細については、[通知とは](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/welcome.html)を参照してください。

### フルアクセスマネージドポリシーの通知に関連するアクセス許可
<a name="notifications-fullaccess"></a>

`AWSCodeCommitFullAccess` マネージドポリシーには、通知へのフルアクセスを許可する次のステートメントが含まれています。このマネージドポリシーが適用されたユーザーは、通知の Amazon SNS トピックの作成と管理、トピックに対するユーザーのサブスクライブとサブスクライブ解除、通知ルールのターゲットとして選択するトピックの一覧表示、Slack 用に設定された Amazon Q Developer in chat applications クライアントの一覧表示を行うこともできます。

```
    {
        "Sid": "CodeStarNotificationsReadWriteAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:CreateNotificationRule",
            "codestar-notifications:DescribeNotificationRule",
            "codestar-notifications:UpdateNotificationRule",
            "codestar-notifications:DeleteNotificationRule",
            "codestar-notifications:Subscribe",
            "codestar-notifications:Unsubscribe"
        ],
        "Resource": "*",
        "Condition" : {
            "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codecommit:*"} 
        }
    },    
    {
        "Sid": "CodeStarNotificationsListAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:ListNotificationRules",
            "codestar-notifications:ListTargets",
            "codestar-notifications:ListTagsforResource,"
            "codestar-notifications:ListEventTypes"
        ],
        "Resource": "*"
    },
    {
        "Sid": "CodeStarNotificationsSNSTopicCreateAccess",
        "Effect": "Allow",
        "Action": [
            "sns:CreateTopic",
            "sns:SetTopicAttributes"
        ],
        "Resource": "arn:aws:sns:*:*:codestar-notifications*"
    },
    {
        "Sid": "CodeStarNotificationsChatbotAccess",
        "Effect": "Allow",
        "Action": [
            "chatbot:DescribeSlackChannelConfigurations",
            "chatbot:ListMicrosoftTeamsChannelConfigurations"
          ],
       "Resource": "*"
    }
```

### 読み取り専用マネージドポリシーの通知に関連するアクセス許可
<a name="notifications-readonly"></a>

`AWSCodeCommitReadOnlyAccess` 管理ポリシーには、通知への読み取り専用アクセスを許可する以下のステートメントが含まれています。この管理ポリシーが適用されたユーザーは、リソースの通知を表示することはできますが、リソースの作成や管理、リソースへのサブスクライブを行うことはできません。

```
   {
        "Sid": "CodeStarNotificationsPowerUserAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:DescribeNotificationRule"
        ],
        "Resource": "*",
        "Condition" : {
            "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codecommit:*"} 
        }
    },    
    {
        "Sid": "CodeStarNotificationsListAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:ListNotificationRules",
            "codestar-notifications:ListEventTypes",
            "codestar-notifications:ListTargets"
        ],
        "Resource": "*"
    }
```

### その他の管理ポリシーの通知に関連するアクセス許可
<a name="notifications-otheraccess"></a>

`AWSCodeCommitPowerUser` 管理ポリシーには、ユーザーが通知を作成、編集、サブスクライブできるようにする次のステートメントが含まれています。ユーザーは通知ルールを削除したり、リソースのタグを管理したりすることはできません。

```
    {
        "Sid": "CodeStarNotificationsReadWriteAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:CreateNotificationRule",
            "codestar-notifications:DescribeNotificationRule",
            "codestar-notifications:UpdateNotificationRule",
            "codestar-notifications:DeleteNotificationRule",
            "codestar-notifications:Subscribe",
            "codestar-notifications:Unsubscribe"
        ],
        "Resource": "*",
        "Condition" : {
            "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codecommit*"} 
        }
    },    
    {
        "Sid": "CodeStarNotificationsListAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:ListNotificationRules",
            "codestar-notifications:ListTargets",
            "codestar-notifications:ListTagsforResource",
            "codestar-notifications:ListEventTypes"
        ],
        "Resource": "*"
    },
    {
        "Sid": "SNSTopicListAccess",
        "Effect": "Allow",
        "Action": [
            "sns:ListTopics"
        ],
        "Resource": "*"
    },
    {
        "Sid": "CodeStarNotificationsChatbotAccess",
        "Effect": "Allow",
        "Action": [
            "chatbot:DescribeSlackChannelConfigurations",
            "chatbot:ListMicrosoftTeamsChannelConfigurations"
          ],
       "Resource": "*"
    }
```

IAM と通知の詳細については、「[AWS CodeStar Notifications の Identity and Access Management](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/security-iam.html)」を参照してください。

## AWS CodeCommit マネージドポリシーと Amazon CodeGuru Reviewer
<a name="codeguru-permissions"></a>

CodeCommit は、プログラム分析と機械学習を使用して一般的な問題を検出し、Java または Python コードにおける修正点を提案する自動化されたコードレビューサービスである Amazon CodeGuru Reviewer をサポートしています。CodeCommit の管理ポリシーには、CodeGuru Reviewer 機能のポリシーステートメントが含まれます。詳細については、[Amazon CodeGuru Reviewer とは](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html)を参照してください。

### AWSCodeCommitFullAccess の CodeGuru Reviewer に関連するアクセス許可
<a name="codeguru-fullaccess"></a>

`AWSCodeCommitFullAccess` 管理ポリシーには、CodeGuru Reviewer が CodeCommit リポジトリに関連付けられ、および関連付けが解除されることを許可する、次のステートメントが含まれています。このマネージドポリシーが適用されたユーザーは、CodeCommit リポジトリと CodeGuru Reviewer との関連付けステータスを表示したり、プルリクエストのレビュージョブのステータスを表示したりすることもできます。

```
    {
      "Sid": "AmazonCodeGuruReviewerFullAccess",
      "Effect": "Allow",
      "Action": [
        "codeguru-reviewer:AssociateRepository",
        "codeguru-reviewer:DescribeRepositoryAssociation",
        "codeguru-reviewer:ListRepositoryAssociations",
        "codeguru-reviewer:DisassociateRepository",
        "codeguru-reviewer:DescribeCodeReview",
        "codeguru-reviewer:ListCodeReviews"
      ],
      "Resource": "*"
    },
    {
      "Sid": "AmazonCodeGuruReviewerSLRCreation",
      "Action": "iam:CreateServiceLinkedRole",
      "Effect": "Allow",
      "Resource": "arn:aws:iam::*:role/aws-service-role/codeguru-reviewer.amazonaws.com/AWSServiceRoleForAmazonCodeGuruReviewer",
      "Condition": {
        "StringLike": {
          "iam:AWSServiceName": "codeguru-reviewer.amazonaws.com"
        }
      }
    },
    {
      "Sid": "CloudWatchEventsManagedRules",
      "Effect": "Allow",
      "Action": [
        "events:PutRule",
        "events:PutTargets",
        "events:DeleteRule",
        "events:RemoveTargets"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "events:ManagedBy": "codeguru-reviewer.amazonaws.com"
        }
      }
    }
```

### AWSCodeCommitPowerUser の CodeGuru Reviewer に関連するアクセス許可
<a name="codeguru-poweruser"></a>

`AWSCodeCommitPowerUser` マネージドポリシーには、リポジトリと CodeGuru Reviewer の関連付けや関連付けの解除、関連付けステータスの表示、プルリクエストのレビュージョブのステータスの表示をユーザーに許可するための以下ステートメントが含まれています。

```
    {
      "Sid": "AmazonCodeGuruReviewerFullAccess",
      "Effect": "Allow",
      "Action": [
        "codeguru-reviewer:AssociateRepository",
        "codeguru-reviewer:DescribeRepositoryAssociation",
        "codeguru-reviewer:ListRepositoryAssociations",
        "codeguru-reviewer:DisassociateRepository",
        "codeguru-reviewer:DescribeCodeReview",
        "codeguru-reviewer:ListCodeReviews"
      ],
      "Resource": "*"
    },
    {
      "Sid": "AmazonCodeGuruReviewerSLRCreation",
      "Action": "iam:CreateServiceLinkedRole",
      "Effect": "Allow",
      "Resource": "arn:aws:iam::*:role/aws-service-role/codeguru-reviewer.amazonaws.com/AWSServiceRoleForAmazonCodeGuruReviewer",
      "Condition": {
        "StringLike": {
          "iam:AWSServiceName": "codeguru-reviewer.amazonaws.com"
        }
      }
    },
    {
      "Sid": "CloudWatchEventsManagedRules",
      "Effect": "Allow",
      "Action": [
        "events:PutRule",
        "events:PutTargets",
        "events:DeleteRule",
        "events:RemoveTargets"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "events:ManagedBy": "codeguru-reviewer.amazonaws.com"
        }
      }
    }
```

### AWSCodeCommitReadOnly の CodeGuru Reviewer に関連するアクセス許可
<a name="codeguru-readonly"></a>

`AWSCodeCommitReadOnlyAccess` マネージドポリシーには、CodeGuru Reviewer の関連付けステータスやプルリクエストのレビュージョブのステータスを表示するための読み取り専用アクセスを許可する以下のステートメントが含まれています。このマネージドポリシーが適用されたユーザーは、リポジトリを関連付けたり関連付け解除できません。

```
     {
      "Sid": "AmazonCodeGuruReviewerReadOnlyAccess",
      "Effect": "Allow",
      "Action": [
            "codeguru-reviewer:DescribeRepositoryAssociation",
            "codeguru-reviewer:ListRepositoryAssociations",
            "codeguru-reviewer:DescribeCodeReview",
            "codeguru-reviewer:ListCodeReviews"
      ],
      "Resource": "*"
    }
```

### Amazon CodeGuru Reviewer のサービスにリンクされたロール
<a name="codeguru-slr"></a>

リポジトリを CodeGuru Reviewer に関連付けると、CodeGuru Reviewer がプルリクエストの Java または Python コードの問題を検出し、修正点を提案できるように、サービスにリンクされたロールが作成されます。サービスにリンクされたロールの名前は、AWSServiceRoleForAmazonCodeGuruReviewer です。詳細については、[Amazon CodeGuru Reviewer でのサービスにリンクされたロールの使用](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/using-service-linked-roles.html)を参照してください。

詳細については、*IAM ユーザーガイド*の [AWS 管理ポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)を参照してください。

## AWS 管理ポリシーに対する CodeCommit の更新
<a name="security-iam-awsmanpol-updates"></a>



このサービスがこれらの変更の追跡を開始してからの CodeCommit の AWS マネージドポリシーの更新に関する詳細を表示します。このページの変更に関する自動通知については、[AWS CodeCommit ユーザーガイドのドキュメント履歴](history.md) の RSS フィードを購読してください。




| 変更 | 説明 | 日付 | 
| --- | --- | --- | 
|  [AWS マネージドポリシー: AWSCodeCommitFullAccess](#managed-policies-full) と [AWS マネージドポリシー: AWSCodeCommitPowerUser](#managed-policies-poweruser) – 既存のポリシーに対する更新  |  CodeCommit はこれらのポリシーにアクセス許可を追加し、Amazon Q Developer in chat applications を使用して、追加の通知タイプをサポートするようになりました。 AWSCodeCommitPowerUser ポリシーと AWSCodeCommitFullAccess ポリシーが変更され、アクセス許可 `chatbot:ListMicrosoftTeamsChannelConfigurations` が追加されました。  | 2023 年 5 月 16 日 | 
|  [AWS マネージドポリシー: AWSCodeCommitReadOnly](#managed-policies-read) – 既存ポリシーへの更新  |  CodeCommit がポリシーから重複したアクセス許可を削除しました。 AWSCodeCommitReadOnly が変更され、重複したアクセス許可 `"iam:ListAccessKeys"` が削除されました。　  | 2021 年 8 月 18 日 | 
|  CodeCommit が変更の追跡を開始しました  |  CodeCommit は AWS 、管理ポリシーの変更の追跡を開始しました。  | 2021 年 8 月 18 日 | 

# カスタマーマネージドポリシーの例
<a name="customer-managed-policies"></a>

独自のカスタム IAM ポリシーを作成して、CodeCommit アクションとリソースのための権限を許可することもできます。これらのカスタムポリシーは、それらのアクセス許可が必要な IAM ユーザーまたはグループにアタッチできます。CodeCommit と他の AWS のサービスを統合するための独自のカスタム IAM ポリシーを作成することもできます。

**Topics**
+ [カスタマー管理のアイデンティティポリシーの例](#customer-managed-policies-identity)

## カスタマー管理のアイデンティティポリシーの例
<a name="customer-managed-policies-identity"></a>

次の IAM ポリシーの例では、さまざまな CodeCommit アクションのアクセス許可を付与します。それらを使用して、IAM ユーザーおよびロールに対して CodeCommit アクセスを制限します。これらのポリシーは、CodeCommit コンソール、API、 AWS SDKs、または を使用してアクションを実行する機能を制御します AWS CLI。



**注記**  
すべての例で、米国西部 (オレゴン) リージョン (us-west-2) を使用し、架空のアカウント ID を使用しています。

 **例**
+ [例 1: ユーザーが 1 つの で CodeCommit オペレーションを実行することを許可する AWS リージョン](#identity-based-policies-example-1)
+ [例 2: 1 つのリポジトリで Git を使用することをユーザーに許可する](#identity-based-policies-example-2)
+ [例 3: 指定した IP アドレス範囲から接続するユーザーにリポジトリへのアクセスを許可する](#identity-based-policies-example-3)
+ [例 4: ブランチに対するアクションを許可または拒否する](#identity-based-policies-example-4)
+ [例 5: タグを使用してリポジトリに対するアクションを許可または拒否する](#identity-based-policies-example-5)

### 例 1: ユーザーが 1 つの で CodeCommit オペレーションを実行することを許可する AWS リージョン
<a name="identity-based-policies-example-1"></a>

次のアクセス許可ポリシーでは、ワイルドカード文字 (`"codecommit:*"`) を使用して、他の AWS リージョンからではなく、us-east-2 リージョンですべての CodeCommit アクションを実行できるようにしています。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "codecommit:*",
            "Resource": "arn:aws:codecommit:us-east-2:111111111111:*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestedRegion": "us-east-2"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "codecommit:ListRepositories",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestedRegion": "us-east-2"
                }
            }
        }
    ]
}
```

------

### 例 2: 1 つのリポジトリで Git を使用することをユーザーに許可する
<a name="identity-based-policies-example-2"></a>

CodeCommit では、`GitPull` IAM ポリシーのアクセス許可は、**git fetch**、**git clone** など、CodeCommit からデータを取得する Git クライアントコマンドに適用されます。同様に、`GitPush` IAM ポリシーアクセス許可は、CodeCommit にデータを送信する Git クライアントコマンドに適用されます。例えば、`GitPush` IAM ポリシーアクセス許可が `Allow` に設定されている場合、ユーザーは Git プロトコルを使用してブランチの削除をプッシュできます。そのプッシュは、その IAM ユーザーの `DeleteBranch` オペレーションに適用されているどのアクセス許可の影響も受けません。アクセス`DeleteBranch`許可は、コンソール、 AWS CLI、 SDKs、API で実行されるアクションに適用されますが、Git プロトコルには適用されません。

以下の例では、指定したユーザーが `MyDemoRepo` という名前の CodeCommit リポジトリに対してプルおよびプッシュできるようにしています。

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

****  

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

------

### 例 3: 指定した IP アドレス範囲から接続するユーザーにリポジトリへのアクセスを許可する
<a name="identity-based-policies-example-3"></a>

IP アドレスが特定の IP アドレス範囲にある場合にのみ、ユーザーが CodeCommit リポジトリに接続することを許可するポリシーを作成できます。これには、有効なアプローチが 2 つあります。ユーザーの IP アドレスが特定のブロック内にない場合に CodeCommit オペレーションを拒否する `Deny` ポリシーを作成するか、または、ユーザーの IP アドレスが特定のブロック内にある場合に CodeCommit オペレーションを許可する `Allow` ポリシーを作成することができます。

特定の IP 範囲にないすべてのユーザーのアクセスを拒否する `Deny` ポリシーを作成することができます。例えば、AWSCodeCommitPowerUser 管理ポリシーとカスタマー管理ポリシーをリポジトリへのアクセスを必要とするすべてのユーザーにアタッチできます。次のポリシーの例では、IP アドレスが指定された IP アドレスのブロック 203.0.113.0/16 にないユーザーの CodeCommit アクセス許可をすべて拒否します。

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Deny",
         "Action": [
            "codecommit:*"
         ],
         "Resource": "*",
         "Condition": {
            "NotIpAddress": {
               "aws:SourceIp": [
                  "203.0.113.0/16"
               ]
            }
         }
      }
   ]
}
```

------

次のポリシーの例では、MyDemoRepo という名前の CodeCommit リポジトリに、指定されたユーザーが、IP アドレスが指定された 203.0.113.0/16 のアドレスブロック内である場合に、同等のアクセス許可である AWSCodeCommitPowerUser 管理ポリシーでアクセスするのを許可します。

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "codecommit:BatchGetRepositories",
            "codecommit:CreateBranch",
            "codecommit:CreateRepository",
            "codecommit:Get*",
            "codecommit:GitPull",
            "codecommit:GitPush",
            "codecommit:List*",
            "codecommit:Put*",
            "codecommit:Post*",
            "codecommit:Merge*",
            "codecommit:TagResource",
            "codecommit:Test*",
            "codecommit:UntagResource",
            "codecommit:Update*"
         ],
         "Resource": "arn:aws:codecommit:us-east-2:111122223333:MyDemoRepo",
         "Condition": {
            "IpAddress": {
               "aws:SourceIp": [
                  "203.0.113.0/16"
               ]
            }
         }
      }
   ]
}
```

------



### 例 4: ブランチに対するアクションを許可または拒否する
<a name="identity-based-policies-example-4"></a>

1 つ以上のブランチで、指定したアクションに対するユーザーのアクセス許可を拒否するポリシーを作成できます。あるいは、リポジトリの他のブランチにはないような、1 つ以上のブランチに対してアクションを許可するポリシーを作成することもできます。これらのポリシーは、適切な管理 (事前定義済み) ポリシーとともに使用できます。詳細については、「[のブランチへのプッシュとマージを制限する AWS CodeCommit](how-to-conditional-branch.md)」を参照してください。

例えば、*MyDemoRepo* という名前のリポジトリで、そのブランチを削除することを含め、ユーザーが main という名前のブランチに変更を加えることを拒否する `Deny` ポリシーを作成できます。このポリシーは、**AWSCodeCommitPowerUser** 管理ポリシーとともに使用できます。これら 2 つのポリシーが適用されたユーザーは、ブランチの作成と削除、プルリクエストの作成、および **AWSCodeCommitPowerUser** で許可されているその他すべてのアクションを実行できますが、*main* というブランチに変更をプッシュしたり、CodeCommit コンソールの *main* ブランチのファイルを追加または編集したり、ブランチまたはプルリクエストを *main* ブランチにマージしたりすることはできません。`Deny` に `GitPush` が適用されているので、ユーザーがローカルリポジトリからプッシュしたときに最初の `Null` 呼び出しの有効性を分析できるように、ポリシーに `GitPush` ステートメントを含める必要があります。

**ヒント**  
Amazon Web Services アカウントのすべてのリポジトリで *main* という名前のすべてのブランチに適用するポリシーを作成する場合、`Resource` では、リポジトリ ARN の代わりにアスタリスク (`*`) を指定します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "codecommit:GitPush",
                "codecommit:DeleteBranch",
                "codecommit:PutFile",
                "codecommit:Merge*"
            ],
            "Resource": "arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo",
            "Condition": {
                "StringEqualsIfExists": {
                    "codecommit:References": [
                        "refs/heads/main"   
                    ]
                },
                "Null": {
                    "codecommit:References": "false"
                }
            }
        }
    ]
}
```

------

次のポリシー例では、ユーザーは Amazon Web Services アカウントのすべてのリポジトリ内の main というブランチに変更を加えることができます。他のブランチへの変更は許可されません。このポリシーを AWSCodeCommitReadOnly 管理ポリシーとともに使用して、main ブランチにあるリポジトリへの自動プッシュを許可することができます。効果は `Allow` であるため、この例のポリシーは AWSCodeCommitPowerUser などの管理ポリシーでは機能しません。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codecommit:GitPush",
                "codecommit:Merge*"
            ],
            "Resource": "*",
            "Condition": {
                "StringEqualsIfExists": {
                    "codecommit:References": [
                        "refs/heads/main"
                    ]
                }
            }
        }
    ]
}
```

------



### 例 5: タグを使用してリポジトリに対するアクションを許可または拒否する
<a name="identity-based-policies-example-5"></a>

リポジトリに関連付けられた AWS タグに基づいてリポジトリに対するアクションを許可または拒否するポリシーを作成し、それらのポリシーを IAM ユーザーを管理するために設定した IAM グループに適用できます。たとえば、 AWS タグキー *Status* と *Secret* のキー値を持つリポジトリのすべての CodeCommit アクションを拒否するポリシーを作成し、そのポリシーを一般的な開発者 (*開発者*) 用に作成した IAM グループに適用できます。次に、上記のタグ付けされたリポジトリ上で作業するデベロッパーが一般的な*デベロッパー*グループのメンバーではなく、代わりに制限されたポリシーが適用されていない別の IAM グループに属していること (*SecretDevelopers*) を確認する必要があります。

次の例では、*Status* キーと *Secret* のキー値でタグ付けされたリポジトリ上のすべての CodeCommit アクションを拒否しています。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "codecommit:Associate*",
        "codecommit:Batch*",
        "codecommit:CancelUploadArchive",
        "codecommit:CreateBranch",
        "codecommit:CreateCommit",
        "codecommit:CreatePullRequest*",
        "codecommit:CreateRepository",
        "codecommit:CreateUnreferencedMergeCommit",
        "codecommit:DeleteBranch",
        "codecommit:DeleteCommentContent",
        "codecommit:DeleteFile",
        "codecommit:DeletePullRequest*",
        "codecommit:DeleteRepository",
        "codecommit:Describe*",
        "codecommit:DisassociateApprovalRuleTemplateFromRepository",
        "codecommit:EvaluatePullRequestApprovalRules",
        "codecommit:GetBlob",
        "codecommit:GetBranch",
        "codecommit:GetComment*",
        "codecommit:GetCommit",
        "codecommit:GetDifferences*",
        "codecommit:GetFile",
        "codecommit:GetFolder",
        "codecommit:GetMerge*",
        "codecommit:GetObjectIdentifier",
        "codecommit:GetPullRequest*",
        "codecommit:GetReferences",
        "codecommit:GetRepository*",
        "codecommit:GetTree",
        "codecommit:GetUploadArchiveStatus",
        "codecommit:Git*",
        "codecommit:ListAssociatedApprovalRuleTemplatesForRepository",
        "codecommit:ListBranches",
        "codecommit:ListPullRequests",
        "codecommit:ListTagsForResource",
        "codecommit:Merge*",
        "codecommit:OverridePullRequestApprovalRules",
        "codecommit:Post*",
        "codecommit:Put*",
        "codecommit:TagResource",
        "codecommit:TestRepositoryTriggers",
        "codecommit:UntagResource",
        "codecommit:UpdateComment",
        "codecommit:UpdateDefaultBranch",
        "codecommit:UpdatePullRequest*",
        "codecommit:UpdateRepository*",
        "codecommit:UploadArchive"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/Status": "Secret"
        }
      }
    }
  ]
}
```

------

すべてのリポジトリではなく、特定のリポジトリをリソースとして指定することで、この戦略をさらに精密にすることができます。また、特定のタグによってタグ付けされていないすべてのリポジトリ上の CodeCommit アクションを許可するポリシーを作成することもできます。例えば、次のポリシーは特定のタグによってタグ付けされていないリポジトリでCodeCommit アクションのみを許可することを除き、CodeCommit アクションに対する **AWSCodeCommitPowerUser** 許可に相当する許可を付与します。

**注記**  
このポリシーの例には、CodeCommit のアクションのみが含まれます。**AWSCodeCommitPowerUser** 管理ポリシーに含まれる他の AWS サービスのアクションは含まれません。詳細については、「」を参照してください[AWS マネージドポリシー: AWSCodeCommitPowerUser](security-iam-awsmanpol.md#managed-policies-poweruser)。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "codecommit:Associate*",
        "codecommit:Batch*",
        "codecommit:CancelUploadArchive",
        "codecommit:CreateBranch",
        "codecommit:CreateCommit",
        "codecommit:CreatePullRequest*",
        "codecommit:CreateRepository",
        "codecommit:CreateUnreferencedMergeCommit",
        "codecommit:DeleteBranch",
        "codecommit:DeleteCommentContent",
        "codecommit:DeleteFile",
        "codecommit:DeletePullRequest*",
        "codecommit:Describe*",
        "codecommit:DisassociateApprovalRuleTemplateFromRepository",
        "codecommit:EvaluatePullRequestApprovalRules",
        "codecommit:GetBlob",
        "codecommit:GetBranch",
        "codecommit:GetComment*",
        "codecommit:GetCommit",
        "codecommit:GetDifferences*",
        "codecommit:GetFile",
        "codecommit:GetFolder",
        "codecommit:GetMerge*",
        "codecommit:GetObjectIdentifier",
        "codecommit:GetPullRequest*",
        "codecommit:GetReferences",
        "codecommit:GetRepository*",
        "codecommit:GetTree",
        "codecommit:GetUploadArchiveStatus",
        "codecommit:Git*",
        "codecommit:ListAssociatedApprovalRuleTemplatesForRepository",
        "codecommit:ListBranches",
        "codecommit:ListPullRequests",
        "codecommit:ListTagsForResource",
        "codecommit:Merge*",
        "codecommit:OverridePullRequestApprovalRules",
        "codecommit:Post*",
        "codecommit:Put*",
        "codecommit:TagResource",
        "codecommit:TestRepositoryTriggers",
        "codecommit:UntagResource",
        "codecommit:UpdateComment",
        "codecommit:UpdateDefaultBranch",
        "codecommit:UpdatePullRequest*",
        "codecommit:UpdateRepository*",
        "codecommit:UploadArchive"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:ResourceTag/Status": "Secret",
          "aws:ResourceTag/Team": "Saanvi"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "codecommit:CreateApprovalRuleTemplate",
        "codecommit:GetApprovalRuleTemplate",
        "codecommit:ListApprovalRuleTemplates",
        "codecommit:ListRepositories",
        "codecommit:ListRepositoriesForApprovalRuleTemplate",
        "codecommit:UpdateApprovalRuleTemplateContent",
        "codecommit:UpdateApprovalRuleTemplateDescription",
        "codecommit:UpdateApprovalRuleTemplateName"
      ],
      "Resource": "*"
    }
  ]
}
```

------

# CodeCommit アクセス許可リファレンス
<a name="auth-and-access-control-permissions-reference"></a>

次の表には、各 CodeCommit API オペレーション、アクセス許可を付与できる対応するアクション、およびアクセス許可を付与するためのリソース ARN の形式が一覧で示されています。CodeCommit API は、その API により許可されたアクションの範囲に基づいてテーブルに分類されています。[アクセスコントロール](auth-and-access-control.md#access-control) をセットアップし、IAM アイデンティティ (アイデンティティベースのポリシー) にアタッチできるアクセス許可ポリシーを作成する際、参照してください。

アクセス許可ポリシーを作成するときに、ポリシーの `Action` フィールドでアクションを指定します。ポリシーの `Resource` フィールドで、ワイルドカード文字 (\$1) を使用して、または使用せずに、ARN としてリソース値を指定します。

CodeCommit ポリシーの条件を表すには、 AWS全体の条件キーを使用します。 AWS全体のキーの完全なリストについては、*IAM ユーザーガイド*の[「使用可能なキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys)」を参照してください。IAM ポリシーの CodeCommit のアクション、リソース、条件キーの詳細については、「[AWS CodeCommitのアクション、リソース、条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscodecommit.html)」を参照してください。

**注記**  
アクションを指定するには、API オペレーション名 (例えば、`codecommit:` や `codecommit:GetRepository`) の前に `codecommit:CreateRepository` プレフィックスを使用します。

**ワイルドカードの使用**

複数のアクションまたはリソースを指定するには、ARN でワイルドカード文字 (\$1) を使用します。例えば、`codecommit:*` はすべての CodeCommit アクションを指定し、`codecommit:Get*` は `Get` という単語で始まるすべての CodeCommit アクションを指定します。次の例では、`MyDemo` で始まる名前のすべてのレポジトリへのアクセスを許可します。

```
arn:aws:codecommit:us-west-2:111111111111:MyDemo*
```

次のテーブルに示されている *repository-name* リソースでのみワイルドカードを使用できます。ワイルドカードを *region* または *account-id* リソースで使用することはできません。ワイルドカードの詳細については、*IAM ユーザーガイド*の [IAM ID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html) を参照してください。



**Topics**
+ [Git クライアントのコマンドに必要なアクセス許可](#aa-git)
+ [ブランチに対するアクションのアクセス許可](#aa-branches)
+ [マージに対するアクションのアクセス許可](#aa-merges)
+ [プルリクエストに対するアクションのアクセス許可](#aa-pr)
+ [承認ルールテンプレートに対するアクションのアクセス許可](#aa-art)
+ [個別のファイルに対するアクションのアクセス許可](#aa-files)
+ [コメントに対するアクションのアクセス許可](#aa-comments)
+ [コミットされたコードに対するアクションのアクセス許可](#aa-code)
+ [リポジトリに対するアクションのアクセス許可](#aa-repositories)
+ [タグに対するアクションのアクセス許可](#aa-tags)
+ [トリガーに対するアクションのアクセス許可](#aa-triggers)
+ [CodePipeline 統合でのアクションのアクセス許可](#aa-acp)

## Git クライアントのコマンドに必要なアクセス許可
<a name="aa-git"></a>

CodeCommit では、`GitPull` IAM ポリシーのアクセス許可は、**git fetch**、**git clone** など、CodeCommit からデータを取得する Git クライアントコマンドに適用されます。同様に、`GitPush` IAM ポリシーアクセス許可は、CodeCommit にデータを送信する Git クライアントコマンドに適用されます。例えば、`GitPush` IAM ポリシーアクセス許可が `Allow` に設定されている場合、ユーザーは Git プロトコルを使用してブランチの削除をプッシュできます。そのプッシュは、その IAM ユーザーの `DeleteBranch` オペレーションに適用されているどのアクセス許可の影響も受けません。アクセス`DeleteBranch`許可は、コンソール、 AWS CLI、 SDKs、API で実行されるアクションに適用されますが、Git プロトコルには適用されません。

`GitPull` と `GitPush` は IAM ポリシーアクセス許可です。API アクションではありません。

スクロールバーを使用して、テーブルの残りの部分を確認します。


**Git クライアントのコマンドへのアクションに CodeCommit で必要なアクセス許可**  

| Git の CodeCommit アクセス許可 | 必要なアクセス権限  | リソース | 
| --- | --- | --- | 
|  GitPull  |  `codecommit:GitPull` CodeCommit リポジトリからローカル repo に情報をプルするのに必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  GitPush  |  `codecommit:GitPush` ローカルリポジトリから CodeCommit リポジトリに情報をプッシュするのに必要です。これは単なる IAM ポリシーのアクセス許可であり、API アクションではありません。  コンテキストキーと、このアクセス許可を含む `Deny` ステートメントを含むポリシーを作成する場合は、`Null` コンテキストも含める必要があります。詳細については、「[のブランチへのプッシュとマージを制限する AWS CodeCommit](how-to-conditional-branch.md)」を参照してください。   |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 

## ブランチに対するアクションのアクセス許可
<a name="aa-branches"></a>

次のアクセス許可では、CodeCommit リポジトリのブランチに対するアクションを許可または拒否します。これらのアクセス許可は、CodeCommit コンソールで実行されるアクションと CodeCommit API を使用して実行されるアクション、および、 AWS CLIを使用して実行されるコマンドについてのみ関係します。Git プロトコルを使用して実行される同様のアクションには関係しません。たとえば、**git show-branch -r** コマンドは、Git プロトコルを使用してリポジトリとコミットのリモートブランチのリストを表示します。CodeCommit の `ListBranches` オペレーションのアクセス許可による影響はありません。

ブランチのポリシーの詳細については、「[のブランチへのプッシュとマージを制限する AWS CodeCommit](how-to-conditional-branch.md) および [カスタマーマネージドポリシーの例](customer-managed-policies.md)」を参照してください。

スクロールバーを使用して、テーブルの残りの部分を確認します。


**CodeCommit API オペレーションおよびブランチのアクションで必要なアクセス許可**  

| ブランチの CodeCommit API オペレーション | 必要なアクセス許可 (API アクション) | リソース | 
| --- | --- | --- | 
|  [CreateBranch](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_CreateBranch.html)  |  `codecommit:CreateBranch` CodeCommit リポジトリにブランチを作成するために必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  [DeleteBranch](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DeleteBranch.html)  |  `codecommit:DeleteBranch` CodeCommit リポジトリからブランチを削除するために必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  [GetBranch](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetBranch.html)  |  `codecommit:GetBranch` CodeCommit リポジトリ内のブランチに関する詳細を取得するのに必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| [ListBranches](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_ListBranches.html) |  `codecommit:ListBranches` CodeCommit リポジトリ内のブランチのリストを取得するために必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| [MergeBranchesByFastForward](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_MergeBranchesByFastForward.html) |  `codecommit:MergeBranchesByFastForward` CodeCommit リポジトリで早送りマージ戦略を使用した 2 つのブランチのマージに必要です。  | arn:aws:codecommit:region:account-id:repository-name | 
| [MergeBranchesBySquash](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_MergeBranchesBySquash.html) |  `codecommit:MergeBranchesBySquash` CodeCommit リポジトリでスカッシュマージ戦略を使用した 2 つのブランチのマージに必要です。  | arn:aws:codecommit:region:account-id:repository-name | 
| [MergeBranchesByThreeWay](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_MergeBranchesByThreeWay.html) |  `codecommit:MergeBranchesByThreeWay` CodeCommit リポジトリで 3 方向マージ戦略を使用した 2 つのブランチのマージに必要です。  | arn:aws:codecommit:region:account-id:repository-name | 
| [UpdateDefaultBranch](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdateDefaultBranch.html) | codecommit:UpdateDefaultBranchCodeCommit リポジトリのデフォルトブランチを変更するのに必要です。 |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 

## マージに対するアクションのアクセス許可
<a name="aa-merges"></a>

次のアクセス許可では、CodeCommit リポジトリのマージに対するアクションを許可または拒否します。これらのアクセス許可は、CodeCommit コンソールと CodeCommit API で実行されるアクション、および、 AWS CLIを使用して実行されるコマンドに関係します。Git プロトコルを使用して実行される同様のアクションには関係しません。ブランチでのアクセス権限の詳細については、「[ブランチに対するアクションのアクセス許可](#aa-branches)」を参照してください。プルリクエストでのアクセス権限については、「[プルリクエストに対するアクションのアクセス許可](#aa-pr)」を参照してください。

スクロールバーを使用して、テーブルの残りの部分を確認します。


**CodeCommit マージコマンドに対するアクションのために必要なアクセス許可**  

| マージの CodeCommit アクセス許可 | 必要なアクセス権限  | リソース | 
| --- | --- | --- | 
|  [BatchDescribeMergeConflicts](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_BatchDescribeMergeConflicts.html)  |  `codecommit:BatchDescribeMergeConflicts` CodeCommit リポジトリでのコミット間のマージにおける競合に関する情報を返すために必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  [CreateUnreferencedMergeCommit](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_CreateUnreferencedMergeCommit.html)  |  `codecommit:CreateUnreferencedMergeCommit` 比較して潜在的な競合を識別するために、CodeCommit リポジトリでの 2 つのブランチあるいはコミット間の非参照のコミットを作成するために必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  [DescribeMergeConflicts](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DescribeMergeConflicts.html)  |  `codecommit:DescribeMergeConflicts` CodeCommit リポジトリでの潜在的なマージに対して、ファールのベース、送信元、送信先のバージョン間におけるマージ競合に関する情報を返すために必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  [GetMergeCommit](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetMergeCommit.html)  |  `codecommit:GetMergeCommit` CodeCommit リポジトリで送信元と送信先のコミット間のマージに関する情報を返すために必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  [GetMergeOptions](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetMergeOptions.html)  |  `codecommit:GetMergeOptions` CodeCommit リポジトリでの 2 つのブランチまたはコミット識別子間で使用できるマージオプションに関する情報を返すために必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 

## プルリクエストに対するアクションのアクセス許可
<a name="aa-pr"></a>

次のアクセス許可では、CodeCommit リポジトリにおけるプルリクエストに対するアクションを許可または拒否します。これらのアクセス許可は、CodeCommit コンソールと CodeCommit API で実行されるアクション、および、 AWS CLIを使用して実行されるコマンドに関係します。Git プロトコルを使用して実行される同様のアクションには関係しません。コメントに関連するアクセス権限については、「[コメントに対するアクションのアクセス許可](#aa-comments)」を参照してください。

スクロールバーを使用して、テーブルの残りの部分を確認します。


**CodeCommit API オペレーションおよびプルリクエストのアクションで必要なアクセス許可**  

| CodeCommit API オペレーション | 必要なアクセス許可 (API アクション) | リソース | 
| --- | --- | --- | 
|  BatchGetPullRequests  |  `codecommit:BatchGetPullRequests` CodeCommit リポジトリで 1 つ以上のプルリクエストに関する情報を返すのに必要です。これは IAM ポリシーのアクセス許可であり、呼び出すことのできる API アクションではありません。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  [CreatePullRequest](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_CreatePullRequest.html)  |  `codecommit:CreatePullRequest` CodeCommit リポジトリにプルリクエストを作成するために必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| [CreatePullRequestApprovalRule](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_CreatePullRequestApprovalRule.html) |  `codecommit:CreatePullRequestApprovalRule` CodeCommit リポジトリのプルリクエストの承認ルールを作成するために必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| [DeletePullRequestApprovalRule](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DeletePullRequestApprovalRule.html) |  `codecommit:DeletePullRequestApprovalRule` CodeCommit リポジトリのプルリクエストの承認ルールを削除するために必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| [DescribePullRequestEvents](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DescribePullRequestEvents.html) | CodeCommit リポジトリの 1 つ以上のプルリクエストイベントに関する情報を返すのに必要です。 | arn:aws:codecommit:region:account-id:repository-name | 
| [EvaluatePullRequestApprovalRules](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_EvaluatePullRequestApprovalRules.html) |  `codecommit:EvaluatePullRequestApprovalRules` プルリクエストが、CodeCommit リポジトリの関連する承認ルールで指定されたすべての条件を満たしているかどうかを評価するために必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  [GetCommentsForPullRequest](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetCommentsForPullRequest.html)  |  `codecommit:GetCommentsForPullRequest` プルリクエストでのコメントを返すのに必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| GetCommitsFromMergeBase |  `codecommit:GetCommitsFromMergeBase` 潜在的なマージのコンテキストにおけるコミット間の違いに関する情報を返す場合は必須。これは IAM ポリシーのアクセス許可であり、呼び出すことのできる API アクションではありません。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| [GetMergeConflicts](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetMergeConflicts.html) |  `codecommit:GetMergeConflicts` プルリクエストのソースブランチと送信先ブランチとのマージの競合に関する情報を返す場合は必須。  | arn:aws:codecommit:region:account-id:repository-name | 
|  [GetPullRequest](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetPullRequest.html)  |  `codecommit:GetPullRequest` プルリクエストに関する情報を返すのに必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  [GetPullRequestApprovalStates](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetPullRequestApprovalStates.html)  |  `codecommit:GetPullRequestApprovalStates` 指定したプルリクエストの承認状態に関する情報を返すために必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  [GetPullRequestOverrideState](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetPullRequestOverrideState.html)  |  `codecommit:GetPullRequestOverrideState` プルリクエストの承認ルールが破棄されている (上書きされている) かどうかと、上書きされている場合に、プルリクエストのルールと要件を上書きしたユーザーまたはアイデンティティの Amazon リソースネーム (ARN) に関する情報を返すために必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| [ListPullRequests](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_ListPullRequests.html) |  `codecommit:ListPullRequests` リポジトリのプルリクエストに関する情報を返すのに必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| [MergePullRequestByFastForward](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_MergePullRequestByFastForward.html) | codecommit:MergePullRequestByFastForwardプルリクエストをクローズして、早送りマージ戦略を使用してプルリクエストの送信元ブランチを送信先ブランチに統合するのに必要です。 |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| [MergePullRequestBySquash](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_MergePullRequestBySquash.html) | codecommit:MergePullRequestBySquashプルリクエストをクローズして、スカッシュマージ戦略を使用してプルリクエストの送信元ブランチを送信先ブランチに統合するのに必要です。 |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| [MergePullRequestByThreeWay](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_MergePullRequestByThreeWay.html) | codecommit:MergePullRequestByThreeWayプルリクエストをクローズして、3 方向マージ戦略を使用してプルリクエストの送信元ブランチを送信先ブランチに統合するのに必要です。 |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| [OverridePullRequestApprovalRules](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_OverridePullRequestApprovalRules.html) | codecommit:OverridePullRequestApprovalRules CodeCommit リポジトリのプルリクエストのすべての承認ルール要件を確保するために必要です。 |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| [PostCommentForPullRequest](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_PostCommentForPullRequest.html) | codecommit:PostCommentForPullRequest CodeCommit リポジトリでプルリクエストにコメントを投稿するのに必要です。 |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| [UpdatePullRequestApprovalRuleContent](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdatePullRequestApprovalRuleContent.html) | codecommit:UpdatePullRequestApprovalRuleContent CodeCommit リポジトリのプルリクエストの承認ルールの構造を変更するために必要です。 |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| [UpdatePullRequestApprovalState](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdatePullRequestApprovalState.html) | codecommit:UpdatePullRequestApprovalState CodeCommit リポジトリのプルリクエストの承認の状態を変更するために必要です。 |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| [UpdatePullRequestDescription](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdatePullRequestDescription.html) | codecommit:UpdatePullRequestDescription CodeCommit リポジトリのプルリクエストの説明を変更するのに必要です。 |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| [UpdatePullRequestStatus](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdatePullRequestStatus.html) | codecommit:UpdatePullRequestStatus CodeCommit リポジトリのプルリクエストのステータスを変更するのに必要です。 |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| [UpdatePullRequestTitle](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdatePullRequestTitle.html) | codecommit:UpdatePullRequestTitle CodeCommit リポジトリのプルリクエストのタイトルを変更するのに必要です。 |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 

## 承認ルールテンプレートに対するアクションのアクセス許可
<a name="aa-art"></a>

次のアクセス許可は、CodeCommit リポジトリの承認ルールテンプレートに対するアクションを許可または拒否します。これらのアクセス許可は、CodeCommit コンソールと CodeCommit API で実行されるアクション、および、 AWS CLIを使用して実行されるコマンドについてのみ関係します。Git プロトコルを使用して実行される同様のアクションには関係しません。プルリクエストでのアクセス権限については、「[プルリクエストに対するアクションのアクセス許可](#aa-pr)」を参照してください。

スクロールバーを使用して、テーブルの残りの部分を確認します。


**承認ルールテンプレートに対するアクションの CodeCommit API オペレーションと必要なアクセス許可**  

| 承認ルールテンプレートの CodeCommit API オペレーション | 必要なアクセス権限  | リソース | 
| --- | --- | --- | 
|  [AssociateApprovalRuleTemplateWithRepository](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_AssociateApprovalRuleTemplateWithRepository.html)  |  `codecommit:AssociateApprovalRuleTemplateWithRepository` Amazon Web Services アカウントの指定されたリポジトリにテンプレートを関連付けるために必要です。関連付けられると、指定したリポジトリで作成されるすべてのプルリクエストのテンプレート条件と一致する承認ルールが自動的に作成されます。  |  \$1  | 
|  [BatchAssociateApprovalRuleTemplateWithRepositories](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_BatchAssociateApprovalRuleTemplateWithRepositories.html)  |  `codecommit:BatchAssociateApprovalRuleTemplateWithRepositories` Amazon Web Services アカウントの 1 つ以上の指定されたリポジトリにテンプレートを関連付けるために必要です。  |  \$1  | 
|  [BatchDisassociateApprovalRuleTemplateFromRepositories](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_BatchDisassociateApprovalRuleTemplateFromRepositories.html)  |  `codecommit:BatchDisassociateApprovalRuleTemplateFromRepositories` Amazon Web Services アカウントの 1 つ以上の指定したリポジトリからテンプレートの関連付けを解除するために必要です。  |  \$1  | 
|  [CreateApprovalRuleTemplate](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_CreateApprovalRuleTemplate.html)  |  `codecommit:CreateApprovalRuleTemplate` 承認ルールのテンプレートを作成するために必要です。このテンプレートは、 AWS アカウントの 1 つ以上のリポジトリに関連付けることができます。  |  \$1  | 
|  [DeleteApprovalRuleTemplate](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DeleteApprovalRuleTemplate.html)  |  `codecommit:DeleteApprovalRuleTemplate` Amazon Web Services アカウントの指定したテンプレートを削除するために必要です。テンプレートですでに作成されたプルリクエストの承認ルールは削除されません。  |  \$1  | 
|  [DisassociateApprovalRuleTemplateFromRepository](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DisassociateApprovalRuleTemplateFromRepository.html)  |  `codecommit:DisassociateApprovalRuleTemplateFromRepository` Amazon Web Services アカウントのリポジトリから指定したテンプレートとの関連付けを解除するために必要です。テンプレートですでに作成されたプルリクエストの承認ルールは削除されません。  |  \$1  | 
|  [GetApprovalRuleTemplate](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetApprovalRuleTemplate.html)  |  `codecommit:GetApprovalRuleTemplate` Amazon Web Services アカウントの承認ルールテンプレートに関する情報を返す場合に必要です。  |  \$1  | 
|  [ListApprovalRuleTemplates](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_ListApprovalRuleTemplates.html)  |  `codecommit:ListApprovalRuleTemplates` Amazon Web Services アカウントに承認ルールテンプレートを一覧表示するために必要です。  |  \$1  | 
|  [ListAssociatedApprovalRuleTemplatesForRepository](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_ListAssociatedApprovalRuleTemplatesForRepository.html)  |  `codecommit:ListAssociatedApprovalRuleTemplatesForRepository` Amazon Web Services アカウントの指定したリポジトリに関連付けられているすべての承認ルールテンプレートを一覧表示するために必要です。  |  \$1  | 
|  [ListRepositoriesForApprovalRuleTemplate](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_ListRepositoriesForApprovalRuleTemplate.html)  |  `codecommit:ListRepositoriesForApprovalRuleTemplate` Amazon Web Services アカウントの指定された承認ルールテンプレートに関連付けられているすべてのリポジトリを一覧表示するために必要です。  |  \$1  | 
|  [UpdateApprovalRuleTemplateContent](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdateApprovalRuleTemplateContent.html)  |  `codecommit:UpdateApprovalRuleTemplateContent` Amazon Web Services アカウントの承認ルールテンプレートの内容を更新するために必要です。  |  \$1  | 
|  [UpdateApprovalRuleTemplateDescription](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdateApprovalRuleTemplateDescription.html)  |  `codecommit:UpdateApprovalRuleTemplateDescription` Amazon Web Services アカウントの承認ルールテンプレートの説明を更新するのに必要です。  |  \$1  | 
|  [UpdateApprovalRuleTemplateName](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdateApprovalRuleTemplateName.html)  |  `codecommit:UpdateApprovalRuleTemplateName` Amazon Web Services アカウントの承認ルールテンプレートの名前を更新するのに必要です。  |  \$1  | 

## 個別のファイルに対するアクションのアクセス許可
<a name="aa-files"></a>

次のアクセス許可では、CodeCommit リポジトリの個別のファイルに対するアクションを許可または拒否します。これらのアクセス許可は、CodeCommit コンソールと CodeCommit API で実行されるアクション、および、 AWS CLIを使用して実行されるコマンドについてのみ関係します。Git プロトコルを使用して実行される同様のアクションには関係しません。例えば、`git push` コマンドは、Git プロトコルを使用して新規の変更されたファイルを CodeCommit リポジトリにプッシュします。CodeCommit の `PutFile` オペレーションのアクセス許可による影響はありません。

スクロールバーを使用して、テーブルの残りの部分を確認します。


**CodeCommit API オペレーションおよび個別ファイルにおけるアクションで必要なアクセス許可**  

| 個別のファイルに対する CodeCommit API オペレーション | 必要なアクセス権限  | リソース | 
| --- | --- | --- | 
|  [DeleteFile](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DeleteFile.html)  |  `codecommit:DeleteFile` CodeCommit コンソールから、CodeCommit リポジトリ内の指定されたブランチから指定されたファイルを削除するために必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  [GetBlob](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetBlob.html)  |  `codecommit:GetBlob` CodeCommit コンソールの CodeCommit リポジトリにある個々のファイルのエンコードされた内容を表示するために必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  [GetFile](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetFile.html)  |  `codecommit:GetFile` CodeCommit コンソールから CodeCommit リポジトリ内の個々のファイルおよびそのメタデータのエンコードされた内容を表示するのに必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  [GetFolder](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetFolder.html)  |  `codecommit:GetFolder` CodeCommit コンソールから CodeCommit リポジトリ内の指定されたフォルダの内容を表示するために必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  [PutFile](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_PutFile.html)  |  `codecommit:PutFile` CodeCommit コンソール、CodeCommit API、または AWS CLIから CodeCommit リポジトリに新しいファイルまたは変更されたファイルを追加するために必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 

## コメントに対するアクションのアクセス許可
<a name="aa-comments"></a>

次のアクセス許可では、CodeCommit リポジトリのコメントに対するアクションを許可または拒否します。これらのアクセス許可は、CodeCommit コンソールと CodeCommit API で実行されるアクション、および、 AWS CLIを使用して実行されるコマンドに関係します。プルリクエストのコメントに関連するアクセス権限については、「[プルリクエストに対するアクションのアクセス許可](#aa-pr)」を参照してください。

スクロールバーを使用して、テーブルの残りの部分を確認します。


**CodeCommit API オペレーションおよびリポジトリのコメントに必要なアクセス許可**  

| CodeCommit API オペレーション | 必要なアクセス許可 (API アクション) | リソース | 
| --- | --- | --- | 
|  [DeleteCommentContent](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DeleteCommentContent.html)  |  `codecommit:DeleteCommentContent` リポジトリ内の変更、ファイル、コミットに対してなされたコメントの内容を削除するのに必要です。コメントは削除できませんが、ユーザーにこのアクセス許可がある場合はコメントの内容を削除できます。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  [GetComment](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetComment.html)  |  `codecommit:GetComment` CodeCommit リポジトリ内の変更、ファイル、コミットに対してなされたコメントに関する情報を返すのに必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  [GetCommentReactions](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetCommentReactions.html)  |  `codecommit:GetCommentReactions` CodeCommit リポジトリ内の変更、ファイル、コミットに対するコメントへの絵文字リアクションの情報を返すために必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  [GetCommentsForComparedCommit](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetCommentsForComparedCommit.html)  |  `codecommit:GetCommentsForComparedCommit` CodeCommit リポジトリ内の 2 つのコミット間の比較に対するコメントに関する情報を返すのに必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  [PostCommentForComparedCommit](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_PostCommentForComparedCommit.html)  |  `codecommit:PostCommentForComparedCommit` CodeCommit リポジトリ内の 2 つのコミット間の比較に対するにコメントを作成するのに必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| [PostCommentReply](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_PostCommentReply.html) |  `codecommit:PostCommentReply` コミット間の比較に対する、またはプルリクエストのコメントに返信を作成するのに必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| [PutcommentReaction](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_PutCommentReaction.html) |  `codecommit:PutCommentReaction` コメントに対する絵文字リアクションを作成または更新するために必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| [UpdateComment](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdateComment.html) |  `codecommit:UpdateComment` コミット間の比較に対する、またはプルリクエストのコメントを編集するのに必要です。コメントの作成者だけがコメントを編集できます。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 

## コミットされたコードに対するアクションのアクセス許可
<a name="aa-code"></a>

次のアクセス許可では、CodeCommit リポジトリにコミットされたコードに対するアクションを許可または拒否します。これらのアクセス許可は、CodeCommit コンソールと CodeCommit API で実行されるアクション、および、 AWS CLIを使用して実行されるコマンドに関係します。Git プロトコルを使用して実行される同様のアクションには関係しません。たとえば、**git commit** コマンドは、Git プロトコルを使用してリポジトリのブランチに対するコミットを作成します。CodeCommit の `CreateCommit` オペレーションのアクセス許可による影響はありません。

これらのアクセス許可を明示的に拒否すると、CodeCommit コンソールで予期しない結果が発生する可能性があります。たとえば、`GetTree` を `Deny` に設定すると、ユーザーがコンソールでリポジトリの内容を操作することは禁止されますが、ユーザーがリポジトリ内のファイルの内容を表示することはブロックされません (ユーザーが E メールでファイルへのリンクを受け取った場合など)。`GetBlob` を `Deny` に設定すると、ユーザーがファイルの内容を表示することは禁止されますが、ユーザーがリポジトリの構造を参照することはブロックされません。`GetCommit` を `Deny` に設定すると、ユーザーがコミットに関する詳細を取得することを禁止します。`GetObjectIdentifier` を `Deny` に設定すると、コードの参照機能のほとんどがブロックされます。これらの 3 つのアクションのすべてをポリシーで `Deny` に設定すると、そのポリシーが適用されるユーザーは、CodeCommit コンソールでコードを参照できません。

スクロールバーを使用して、テーブルの残りの部分を確認します。


**CodeCommit API オペレーションおよびコミットされたコードのアクションで必要なアクセス許可**  

| CodeCommit API オペレーション | 必要なアクセス許可 (API アクション) | リソース | 
| --- | --- | --- | 
|  BatchGetCommits  |  `codecommit:BatchGetCommits` CodeCommit リポジトリ内の 1 つまたは複数のコミットに関する情報を返すために必要です。これは IAM ポリシーのアクセス許可であり、呼び出すことのできる API アクションではありません。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| [CreateCommit](https://docs.aws.amazon.com/codecommit/latest/APIReference/CreateCommit.html) |  `codecommit:CreateCommit` コミットを作成するために必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  [GetCommit](https://docs.aws.amazon.com/codecommit/latest/APIReference/GetCommit.html)  |  `codecommit:GetCommit` コミットに関する情報を返すのに必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  GetCommitHistory  |  `codecommit:GetCommitHistory` リポジトリに対するコミットの履歴に関する情報を返すのに必要です。これは IAM ポリシーのアクセス許可であり、呼び出すことのできる API アクションではありません。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| [GetDifferences](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetDifferences.html) |  `codecommit:GetDifferences` コミット指定子 (ブランチ、タグ、HEAD、コミット ID、または他の完全修飾参照) 間の違いに関する情報を返すのに必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| GetObjectIdentifier | codecommit:GetObjectIdentifierBLOB、ツリー、コミットをそれらの識別子に解決すのに必要です。これは IAM ポリシーのアクセス許可であり、呼び出すことのできる API アクションではありません。 |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| GetReferences | codecommit:GetReferencesブランチやタグなどのすべての参照を返すのに必要です。これは IAM ポリシーのアクセス許可であり、呼び出すことのできる API アクションではありません。 |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| GetTree | codecommit:GetTreeCodeCommit コンソールから、CodeCommit リポジトリ内の指定されたツリーの内容を表示するために必要です。これは IAM ポリシーのアクセス許可であり、呼び出すことのできる API アクションではありません。 |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 

## リポジトリに対するアクションのアクセス許可
<a name="aa-repositories"></a>

次のアクセス許可では、CodeCommit リポジトリに対するアクションを許可または拒否します。これらのアクセス許可は、CodeCommit コンソールと CodeCommit API で実行されるアクション、および、 AWS CLIを使用して実行されるコマンドに関係します。Git プロトコルを使用して実行される同様のアクションには関係しません。

スクロールバーを使用して、テーブルの残りの部分を確認します。


**CodeCommit API オペレーションおよびリポジトリのアクションで必要なアクセス許可**  

| CodeCommit API オペレーション | 必要なアクセス許可 (API アクション) | リソース | 
| --- | --- | --- | 
|  [BatchGetRepositories](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_BatchGetRepositories.html)  |  `codecommit:BatchGetRepositories` Amazon Web Services アカウント内の複数の CodeCommit リポジトリに関する情報を取得するのに必要です。`Resource` では、ユーザーが情報の取得を許可 (または拒否) されるすべての CodeCommit リポジトリの名前を指定する必要があります。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  [CreateRepository](https://docs.aws.amazon.com/codecommit/latest/APIReference/CreateRepository.html)  |  `codecommit:CreateRepository` CodeCommit リポジトリを作成するために必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  [DeleteRepository](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_DeleteRepository.html)  |  `codecommit:DeleteRepository` CodeCommit リポジトリを削除するために必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| [GetRepository](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetRepository.html) |  `codecommit:GetRepository` 1 つの CodeCommit リポジトリに関する情報を取得するのに必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| [ListRepositories](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_ListRepositories.html) | codecommit:ListRepositoriesAmazon Web Services アカウントに登録されている複数の CodeCommit リポジトリの名前とシステム ID のリストを取得するのに必要です。このアクションで `Resource` に許可される値は、すべてのリポジトリ (`*`) のみです。 |  \$1  | 
| [UpdateRepositoryDescription](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdateRepositoryDescription.html) | codecommit:UpdateRepositoryDescriptionCodeCommit リポジトリの説明を変更するために必要です。 |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| [UpdateRepositoryName](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UpdateRepositoryName.html) | codecommit:UpdateRepositoryNameCodeCommit リポジトリの名前を変更するために必要です。`Resource` では、変更が許可されている CodeCommit リポジトリと新しいリポジトリ名の両方を指定する必要があります。 |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 

## タグに対するアクションのアクセス許可
<a name="aa-tags"></a>

次のアクセス許可は、CodeCommit リソースの AWS タグに対するアクションを許可または拒否します。

スクロールバーを使用して、テーブルの残りの部分を確認します。


**CodeCommit API オペレーションおよびタグのアクションに必要なアクセス許可**  

| CodeCommit API オペレーション | 必要なアクセス許可 (API アクション) | リソース | 
| --- | --- | --- | 
|  [ListTagsForResource](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_ListTagsForResource.html)  |  `codecommit:ListTagsForResource` CodeCommit のリソースに設定された AWS タグに関する情報を返すために必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  [TagResource](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_TagResource.html)  |  `codecommit:TagResource` CodeCommit でリソースの AWS タグを追加または編集するために必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  [UntagResource](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_UntagResource.html)  |  `codecommit:UntagResource` CodeCommit のリソースから AWS タグを削除するために必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 

## トリガーに対するアクションのアクセス許可
<a name="aa-triggers"></a>

次のアクセス許可では、CodeCommit リポジトリのトリガーに対するアクションを許可または拒否します。

スクロールバーを使用して、テーブルの残りの部分を確認します。


**CodeCommit API オペレーションおよびトリガーのアクションに必要なアクセス許可**  

| CodeCommit API オペレーション | 必要なアクセス許可 (API アクション) | リソース | 
| --- | --- | --- | 
|  [GetRepositoryTriggers](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetRepositoryTriggers.html)  |  `codecommit:GetRepositoryTriggers` リポジトリのために設定されたトリガーに関する情報を返すのに必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  [PutRepositoryTriggers](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_PutRepositoryTriggers.html)  |  `codecommit:PutRepositoryTriggers` リポジトリのトリガーを作成、編集、または削除するのに必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  [TestRepositoryTriggers](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_TestRepositoryTriggers.html)  |  `codecommit:TestRepositoryTriggers` トリガー用に設定されたトピックまたは関数にデータを送ることで、リポジトリトリガーの機能をテストするのに必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 

## CodePipeline 統合でのアクションのアクセス許可
<a name="aa-acp"></a>

CodePipeline がパイプラインのソースアクションで CodeCommit リポジトリを使用するには、次のテーブルに示されているすべてのアクセス許可を CodePipeline のサービスロールに付与する必要があります。これらのアクセス許可がサービスロールで設定されていないか、**Deny** に設定されている場合、リポジトリに変更が加えられてもパイプラインは自動的に実行されないため、変更を手動でリリースすることはできません。

スクロールバーを使用して、テーブルの残りの部分を確認します。


**CodeCommit API オペレーションと CodePipeline 統合でのアクションに必要なアクセス許可**  

| CodeCommit API オペレーション | 必要なアクセス許可 (API アクション) | リソース | 
| --- | --- | --- | 
|  [GetBranch](https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetBranch.html)  |  `codecommit:GetBranch` CodeCommit リポジトリ内のブランチに関する詳細を取得するのに必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  [GetCommit](https://docs.aws.amazon.com/codecommit/latest/APIReference/GetCommit.html)  |  `codecommit:GetCommit` CodePipeline のサービスロールへのコミットに関する情報を返すのに必要です。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  UploadArchive  |  `codecommit:UploadArchive` CodePipeline のサービスロールに対し、変更をパイプラインにアップロードすることを許可するために必要です。これは IAM ポリシーのアクセス許可であり、呼び出すことのできる API アクションではありません。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
|  GetUploadArchiveStatus  |  `codecommit:GetUploadArchiveStatus` アーカイブのアップロードのステータス (進行中か、完了したか、キャンセル済みか、エラーが発生したかどうか) を判断するのに必要です。これは IAM ポリシーのアクセス許可であり、呼び出すことのできる API アクションではありません。  |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 
| CancelUploadArchive | codecommit:CancelUploadArchiveパイプラインへのアーカイブのアップロードをキャンセルするのに必要です。これは IAM ポリシーのアクセス許可であり、呼び出すことのできる API アクションではありません。 |  arn:aws:codecommit:*region*:*account-id*:*repository-name*  | 

# が IAM と AWS CodeCommit 連携する方法
<a name="security_iam_service-with-iam"></a>

IAM を使用して CodeCommit へのアクセスを管理する前に、CodeCommit で使用できる IAM 機能について理解しておく必要があります。CodeCommit およびその他の AWS のサービスが IAM と連携する方法の概要については、IAM *ユーザーガイド*の[AWS 「IAM と連携する のサービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)」を参照してください。

**Topics**
+ [条件キー](#security_iam_service-with-iam-id-based-policies-conditionkeys)
+ [例](#security_iam_service-with-iam-id-based-policies-examples)

## 条件キー
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どの**プリンシパル**がどの**リソース**に対してどのような**条件下で****アクション**を実行できるかということです。

`Condition` 要素は、定義された基準に基づいてステートメントが実行される時期を指定します。イコールや未満などの[条件演算子](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)を使用して条件式を作成して、ポリシーの条件とリクエスト内の値を一致させることができます。すべての AWS グローバル条件キーを確認するには、*「IAM ユーザーガイド*」の[AWS 「グローバル条件コンテキストキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)」を参照してください。

CodeCommit は独自の条件キーを定義し、一部のグローバル条件キーの使用をサポートしています。すべての AWS グローバル条件キーを確認するには、*IAM ユーザーガイド*の[AWS 「グローバル条件コンテキストキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)」を参照してください。

 CodeCommit アクションの中には、`codecommit:References` 条件キーをサポートするものもあります。このキーを使用するポリシーの例については、「[例 4: ブランチに対するアクションを許可または拒否する](customer-managed-policies.md#identity-based-policies-example-4)」を参照してください。

CodeCommit 条件キーのリストを確認するには、*IAM ユーザーガイド*の [AWS CodeCommitの条件キー](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awscodecommit.html#awscodecommit-policy-keys)を参照してください。条件キーを使用できるアクションとリソースについては、[「 で定義されるアクション AWS CodeCommit](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awscodecommit.html#awscodecommit-actions-as-permissions)」を参照してください。

## 例
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



CodeCommit アイデンティティベースのポリシーの例については、[AWS CodeCommit アイデンティティベースのポリシーの例](security-iam.md#security_iam_id-based-policy-examples) を参照してください。

## CodeCommit のリソースベースのポリシー
<a name="security_iam_service-with-iam-resource-based-policies"></a>

CodeCommit では、リソースベースのポリシーはサポートされていません。

## CodeCommit タグに基づく認可
<a name="security_iam_service-with-iam-tags"></a>

CodeCommit リソースにタグをアタッチしたり、リクエスト内のタグを CodeCommit に渡したりできます。タグに基づいてアクセスを制御するには、`codecommit:ResourceTag/key-name`、`aws:RequestTag/key-name`、または `aws:TagKeys` の条件キーを使用して、ポリシーの[条件要素](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)でタグ情報を提供します。CodeCommit リソースのタグ付けの詳細については、[例 5: タグを使用してリポジトリに対するアクションを許可または拒否する](customer-managed-policies.md#identity-based-policies-example-5) を参照してください。タグ付け戦略の詳細については、[AWS 「リソースのタグ付け](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)」を参照してください。

CodeCommit では、セッションタグに基づくポリシーもサポートしています。詳細については、「[セッションタグ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html)」を参照してください。

### CodeCommit で ID 情報を提供するためのタグの使用
<a name="security-iam_service-with-iam-tags-identity"></a>

CodeCommit では、セッションタグの使用がサポートされています。セッションタグは、IAM ロールを引き受けるとき、一時的な認証情報を使用するとき、または AWS Security Token Service (AWS STS) でユーザーをフェデレートするときに渡すキーと値のペアの属性です。タグを IAM ユーザーに関連付けることもできます。これらのタグで提供される情報を使用して、変更を加えた人やイベントを発生させたユーザーを簡単に特定できます。CodeCommit では、次のキー名を持つタグの値が CodeCommit イベントに含まれます。


****  

| キー名 | 値 | 
| --- | --- | 
| displayName | 表示してユーザーに関連付ける人間が判読可能な名前（たとえば、Mary Major や Saanvi Sarkar）。 | 
| emailAddress | ユーザーに対して表示し、関連付ける E メールアドレス（例: mary\$1major@example.com または saanvi\$1sarkar@example.com）。 | 

この情報が提供された場合、CodeCommit は Amazon EventBridge および Amazon CloudWatch Events に送信されるイベントにその情報を含めます。詳細については、「[Amazon EventBridge および Amazon CloudWatch Events の CodeCommit イベントのモニタリング](monitoring-events.md)」を参照してください。

セッションタグを使用するには、ロールに、`sts:TagSession` アクセス許可を `Allow` に設定したポリシーが含まれている必要があります。フェデレーティッドアクセスを使用している場合は、設定の一部として表示名と E メールタグ情報を構成できます。たとえば、Azure Active Directory を使用している場合は、次のクレーム情報を提供できます。


****  

| クレーム名 | 値 | 
| --- | --- | 
| https://aws.amazon.com/SAML/Attributes/PrincipalTag:displayName | user.displayname | 
| https://aws.amazon.com/SAML/Attributes/PrincipalTag:emailAddress | user.mail | 

を使用して AWS CLI 、 `displayName`および `emailAddress`のセッションタグを渡すことができます**AssumeRole**。たとえば、*Developer* という名前のロールを引き受け、*Mary Major* という名前を関連付けたいユーザーは、次のような **assume-role** コマンドを使用できます。

```
aws sts assume-role \
--role-arn arn:aws:iam::123456789012:role/Developer \
--role-session-name Mary-Major \
–-tags Key=displayName,Value="Mary Major" Key=emailAddress,Value="mary_major@example.com" \
--external-id Example987
```

詳細については、「[AssumeRole](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_adding-assume-role)」を参照してください。

`AssumeRoleWithSAML` オペレーションを使用して、`displayName` タグと `emailAddress` タグを含む一時的な認証情報のセットを返すことができます。これらのタグは、CodeCommit リポジトリにアクセスするときに使用できます。そのためには、会社またはグループがサードパーティーの SAML ソリューションを既に統合している必要があります AWS。その場合は、SAML 属性をセッションタグとして渡すことができます。たとえば、*Saanvi Sarkar* という名前のユーザーの表示名と E メールアドレスの ID 属性をセッションタグとして渡す場合は、次のようにします。

```
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:displayName">
  <AttributeValue>Saanvi Sarkar</AttributeValue>
</Attribute>
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:emailAddress">
  <AttributeValue>saanvi_sarkar@example.com</AttributeValue>
</Attribute>
```

詳細については、「[AssumeRoleWithSAML を使用したセッションタグの受け渡し](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_adding-assume-role-saml)」を参照してください。

`AssumeRoleWithIdentity` オペレーションを使用して、`displayName` タグと `emailAddress` タグを含む一時的な認証情報のセットを返すことができます。これらのタグは、CodeCommit リポジトリにアクセスするときに使用できます。OpenID Connect (OIDC) からセッションタグを渡すには、JSON ウェブトークン (JWT) にセッションタグを含める必要があります。例: *Li Juan* という名前のユーザーの `AssumeRoleWithWebIdentity` セッションタグ `displayName` とセッションタグが含まれる呼び出し `emailAddress` に使用されるデコードされた JWP トークン。

```
{
    "sub": "lijuan",
    "aud": "ac_oic_client",
    "jti": "ZYUCeREXAMPLE",
    "iss": "https://xyz.com",
    "iat": 1566583294,
    "exp": 1566583354,
    "auth_time": 1566583292,
    "https://aws.amazon.com/tags": {
        "principal_tags": {
            "displayName": ["Li Juan"],
            "emailAddress": ["li_juan@example.com"],
        },
        "transitive_tag_keys": [
            "displayName",
            "emailAddress"
        ]
    }
}
```

詳細については、「[AssumeRoleWithWebIdentity を使用したセッションタグの受け渡し](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_adding-assume-role-idp)」を参照してください。

`GetFederationToken` オペレーションを使用して、`displayName` タグと `emailAddress` タグを含む一時的な認証情報のセットを返すことができます。これらのタグは、CodeCommit リポジトリにアクセスするときに使用できます。たとえば、 を使用して、 タグ`displayName`と `emailAddress` タグを含むフェデレーショントークン AWS CLI を取得するには、次のようにします。

```
aws sts get-federation-token \
--name my-federated-user \
–-tags key=displayName,value="Nikhil Jayashankar" key=emailAddress,value=nikhil_jayashankar@example.com
```

詳細については、「[GetFederationToken を使用したセッションタグの受け渡し](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_adding-getfederationtoken)」を参照してください。

## CodeCommit IAM ロール
<a name="security_iam_service-with-iam-roles"></a>

[IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)は、特定のアクセス許可を持つ、Amazon Web Services アカウント内のエンティティです。

### CodeCommit での一時的な認証情報の使用
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

一時的な認証情報を使用して、フェデレーションでサインインする、IAM 役割を引き受ける、またはクロスアカウント役割を引き受けることができます。一時的なセキュリティ認証情報を取得するには、[AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) や [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html) などの AWS STS API オペレーションを呼び出します。

CodeCommit では、一時認証情報の使用をサポートしています。詳細については、「[認証情報をローテーションして AWS CodeCommit リポジトリに接続する](temporary-access.md)」を参照してください。

### サービスリンクロール
<a name="security_iam_service-with-iam-roles-service-linked"></a>

[サービスにリンクされたロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)を使用すると、 AWS サービスは他の サービスのリソースにアクセスして、ユーザーに代わってアクションを実行できます。サービスリンクロールは IAM アカウント内に表示され、サービスによって所有されます。IAM 管理者は、サービスにリンクされたロールのアクセス許可を表示できますが、編集することはできません。

CodeCommit はサービスにリンクされたロールを使用しません。

### サービスロール
<a name="security_iam_service-with-iam-roles-service"></a>

この機能により、ユーザーに代わってサービスが[サービスロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role)を引き受けることが許可されます。この役割により、サービスがお客様に代わって他のサービスのリソースにアクセスし、アクションを完了することが許可されます。サービスロールはIAM アカウントに表示され、アカウントによって所有されます。つまり、IAM 管理者はこの役割の権限を変更できます。ただし、これを行うことにより、サービスの機能が損なわれる場合があります。

CodeCommit はサービスロールを使用しません。

## AWS CodeCommit アイデンティティベースのポリシーの例
<a name="security_iam_id-based-policy-examples"></a>

デフォルトでは、IAM ユーザーおよびロールには、CodeCommit リソースを作成または変更するアクセス許可はありません。また、 AWS マネジメントコンソール、 AWS CLI、または AWS API を使用してタスクを実行することはできません。IAM 管理者は、ユーザーとロールに必要な、指定されたリソースで特定の API オペレーションを実行する権限をユーザーとロールに付与する IAM ポリシーを作成する必要があります。続いて、管理者はそれらのアクセス許可が必要な IAM ユーザーまたはグループにそのポリシーをアタッチします。

ポリシーの例については、以下のトピックを参照してください。
+  [例 1: ユーザーが 1 つの で CodeCommit オペレーションを実行することを許可する AWS リージョン](customer-managed-policies.md#identity-based-policies-example-1)
+ [例 2: 1 つのリポジトリで Git を使用することをユーザーに許可する](customer-managed-policies.md#identity-based-policies-example-2)
+ [例 3: 指定した IP アドレス範囲から接続するユーザーにリポジトリへのアクセスを許可する](customer-managed-policies.md#identity-based-policies-example-3)
+ [例 4: ブランチに対するアクションを許可または拒否する](customer-managed-policies.md#identity-based-policies-example-4)
+ [例 5: タグを使用してリポジトリに対するアクションを許可または拒否する](customer-managed-policies.md#identity-based-policies-example-5)
+ [ロールを使用して AWS CodeCommit リポジトリへのクロスアカウントアクセスを設定する](cross-account.md)

JSON ポリシードキュメントのこれらの例を使用して、IAM アイデンティティベースのポリシーを作成する方法については、*IAM ユーザーガイド*の「[JSON タブでのポリシーの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor)」を参照してください。

**Topics**
+ [ポリシーに関するベストプラクティス](#security_iam_service-with-iam-policy-best-practices)
+ [CodeCommit コンソールの使用](#security_iam_id-based-policy-examples-console)
+ [ユーザーが自分の許可を表示できるようにする](#security_iam_id-based-policy-examples-view-own-permissions)
+ [タグに基づく CodeCommit *リポジトリ*の表示](#security_iam_id-based-policy-examples-view-repositories-tags)

### ポリシーに関するベストプラクティス
<a name="security_iam_service-with-iam-policy-best-practices"></a>

ID ベースのポリシーは、ユーザーのアカウント内の CodeCommit リソースを誰かが作成、アクセス、または削除できるどうかを決定します。これらのアクションでは、 AWS アカウントに費用が発生する場合があります。アイデンティティベースポリシーを作成したり編集したりする際には、以下のガイドラインと推奨事項に従ってください:
+ ** AWS 管理ポリシーを開始し、最小特権のアクセス許可に移行する** – ユーザーとワークロードにアクセス許可の付与を開始するには、多くの一般的なユースケースにアクセス許可を付与する*AWS 管理ポリシー*を使用します。これらは で使用できます AWS アカウント。ユースケースに固有の AWS カスタマー管理ポリシーを定義することで、アクセス許可をさらに減らすことをお勧めします。詳細については、*IAM ユーザーガイド* の [AWS マネージドポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) または [ジョブ機能のAWS マネージドポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) を参照してください。
+ **最小特権を適用する** – IAM ポリシーでアクセス許可を設定する場合は、タスクの実行に必要な許可のみを付与します。これを行うには、特定の条件下で特定のリソースに対して実行できるアクションを定義します。これは、最小特権アクセス許可とも呼ばれています。IAM を使用して許可を適用する方法の詳細については、*IAM ユーザーガイド* の [IAM でのポリシーとアクセス許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) を参照してください。
+ **IAM ポリシーで条件を使用してアクセスをさらに制限する** - ポリシーに条件を追加して、アクションやリソースへのアクセスを制限できます。たとえば、ポリシー条件を記述して、すべてのリクエストを SSL を使用して送信するように指定できます。条件を使用して、サービスアクションが などの特定の を通じて使用されている場合に AWS のサービス、サービスアクションへのアクセスを許可することもできます CloudFormation。詳細については、*IAM ユーザーガイド* の [IAM JSON ポリシー要素:条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) を参照してください。
+ **IAM アクセスアナライザー を使用して IAM ポリシーを検証し、安全で機能的な権限を確保する** - IAM アクセスアナライザー は、新規および既存のポリシーを検証して、ポリシーが IAM ポリシー言語 (JSON) および IAM のベストプラクティスに準拠するようにします。IAM アクセスアナライザーは 100 を超えるポリシーチェックと実用的な推奨事項を提供し、安全で機能的なポリシーの作成をサポートします。詳細については、*IAM ユーザーガイド* の [IAM Access Analyzer でポリシーを検証する](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) を参照してください。
+ **多要素認証 (MFA) を要求する** – で IAM ユーザーまたはルートユーザーを必要とするシナリオがある場合は AWS アカウント、MFA をオンにしてセキュリティを強化します。API オペレーションが呼び出されるときに MFA を必須にするには、ポリシーに MFA 条件を追加します。詳細については、*IAM ユーザーガイド* の [MFA を使用した安全な API アクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) を参照してください。

IAM でのベストプラクティスの詳細については、*IAM ユーザーガイド* の [IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) を参照してください。

### CodeCommit コンソールの使用
<a name="security_iam_id-based-policy-examples-console"></a>

 AWS CodeCommit コンソールにアクセスするには、最小限のアクセス許可のセットが必要です。これらのアクセス許可により、Amazon Web Services アカウントの CodeCommit リソースの詳細をリストおよび表示できます。最小限必要な許可よりも厳しく制限されたアイデンティティベースポリシーを作成すると、そのポリシーを添付したエンティティ (IAM ユーザーまたはロール) に対してコンソールが意図したとおりに機能しません。

これらのエンティティが CodeCommit コンソールを引き続き使用できるようにするには、エンティティに次の AWS 管理ポリシーもアタッチします。詳細については、*IAM ユーザーガイド*の[ユーザーへのアクセス許可の追加](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)を参照してください。

詳細については、「[CodeCommit でのアイデンティティベースのポリシー (IAM ポリシー) の使用](auth-and-access-control-iam-identity-based-access-control.md)」を参照してください。

 AWS CLI または AWS API のみを呼び出すユーザーには、最小限のコンソールアクセス許可を付与する必要はありません。代わりに、実行しようとしている API オペレーションに一致するアクションのみへのアクセスが許可されます。

### ユーザーが自分の許可を表示できるようにする
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

この例では、ユーザーアイデンティティにアタッチされたインラインおよびマネージドポリシーの表示を IAM ユーザーに許可するポリシーの作成方法を示します。このポリシーには、コンソールで、または AWS CLI または AWS API を使用してプログラムでこのアクションを実行するアクセス許可が含まれています。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

### タグに基づく CodeCommit *リポジトリ*の表示
<a name="security_iam_id-based-policy-examples-view-repositories-tags"></a>

アイデンティティベースのポリシーの条件を使用して、タグに基づいて CodeCommit リソースへのアクセスを制御できます。これを行う方法を示すポリシーの例については、「[例 5: タグを使用してリポジトリに対するアクションを許可または拒否する](customer-managed-policies.md#identity-based-policies-example-5)」を参照してください。

詳細については、*IAM ユーザーガイド*の [IAM JSON ポリシー要素: 条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)を参照してください。

## AWS CodeCommit ID とアクセスのトラブルシューティング
<a name="security_iam_troubleshoot"></a>

次の情報は、CodeCommit と IAM の使用に伴って発生する可能性がある一般的な問題の診断や修復に役立ちます。

**Topics**
+ [CodeCommit でアクションを実行する権限がない](#security_iam_troubleshoot-no-permissions)
+ [iam:PassRole を実行する認可がない](#security_iam_troubleshoot-passrole)
+ [アクセスキーを表示したい](#security_iam_troubleshoot-access-keys)
+ [管理者として CodeCommit へのアクセスを他のユーザーに許可したい](#security_iam_troubleshoot-admin-delegate)
+ [自分の Amazon Web Services アカウント以外のユーザーに CodeCommit リソースへのアクセスを許可したい](#security_iam_troubleshoot-cross-account-access)

### CodeCommit でアクションを実行する権限がない
<a name="security_iam_troubleshoot-no-permissions"></a>

でアクションを実行する権限がないと AWS マネジメントコンソール 通知された場合は、管理者に連絡してサポートを依頼する必要があります。管理者とは、サインイン認証情報を提供した担当者です。

詳細については、[CodeCommit コンソールを使用するために必要なアクセス許可](auth-and-access-control-iam-identity-based-access-control.md#console-permissions)を参照してください。

### iam:PassRole を実行する認可がない
<a name="security_iam_troubleshoot-passrole"></a>

`iam:PassRole` アクションを実行する権限がないというエラーが表示された場合は、ポリシーを更新して CodeCommit にロールを渡せるようにする必要があります。

一部の AWS のサービス では、新しいサービスロールまたはサービスにリンクされたロールを作成する代わりに、既存のロールをそのサービスに渡すことができます。そのためには、サービスにロールを渡すアクセス許可が必要です。

以下の例のエラーは、`marymajor` という IAM ユーザーがコンソールを使用して CodeCommit でアクションを実行しようする場合に発生します。ただし、このアクションをサービスが実行するには、サービスロールから付与されたアクセス許可が必要です。Mary には、ロールをサービスに渡すアクセス許可がありません。

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

この場合、Mary のポリシーを更新してメアリーに `iam:PassRole` アクションの実行を許可する必要があります。

サポートが必要な場合は、 AWS 管理者にお問い合わせください。サインイン資格情報を提供した担当者が管理者です。

### アクセスキーを表示したい
<a name="security_iam_troubleshoot-access-keys"></a>

IAM ユーザーアクセスキーを作成した後は、いつでもアクセスキー ID を表示できます。ただし、シークレットアクセスキーを再表示することはできません。シークレットアクセスキーを紛失した場合は、新しいアクセスキーペアを作成する必要があります。

アクセスキーは、アクセスキー ID (例: `AKIAIOSFODNN7EXAMPLE`) とシークレットアクセスキー (例: `wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`) の 2 つで構成されています。ユーザー名とパスワードと同様に、リクエストを認証するために、アクセスキー ID とシークレットアクセスキーの両方を使用する必要があります。ユーザー名とパスワードと同様に、アクセスキーは安全に管理してください。

**重要**  
[正規のユーザー ID を確認する](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html#FindCanonicalId)ためであっても、アクセスキーを第三者に提供しないでください。これにより、 への永続的なアクセス権をユーザーに付与できます AWS アカウント。

アクセスキーペアを作成する場合、アクセスキー ID とシークレットアクセスキーを安全な場所に保存するように求めるプロンプトが表示されます。このシークレットアクセスキーは、作成時にのみ使用できます。シークレットアクセスキーを紛失した場合、IAM ユーザーに新規アクセスキーを追加する必要があります。アクセスキーは最大 2 つまで持つことができます。既に 2 つある場合は、新規キーペアを作成する前に、いずれかを削除する必要があります。手順を表示するには、*IAM ユーザーガイド*の「[アクセスキーの管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_CreateAccessKey)」を参照してください。

### 管理者として CodeCommit へのアクセスを他のユーザーに許可したい
<a name="security_iam_troubleshoot-admin-delegate"></a>

CodeCommit へのアクセスを他のユーザーに許可するには、アクセスを必要とするユーザーまたはアプリケーションにアクセス許可を付与する必要があります。 AWS IAM アイデンティティセンター を使用してユーザーとアプリケーションを管理する場合は、アクセスレベルを定義するアクセス許可セットをユーザーまたはグループに割り当てます。アクセス許可セットは、ユーザーまたはアプリケーションに関連付けられている IAM ロールに自動的に IAM ポリシーを作成して割り当てます。詳細については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[アクセス許可セット](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html)」を参照してください。

IAM アイデンティティセンターを使用していない場合は、アクセスを必要としているユーザーまたはアプリケーションの IAM エンティティ (ユーザーまたはロール) を作成する必要があります。次に、CodeCommit の適切なアクセス許可を付与するポリシーを、そのエンティティにアタッチする必要があります。アクセス許可が付与されたら、ユーザーまたはアプリケーション開発者に認証情報を提供します。これらの認証情報を使用して AWSにアクセスします。IAM ユーザー、グループ、ポリシー、アクセス許可の作成の詳細については、「*IAM ユーザーガイド*」の「[IAM アイデンティティ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html)」と「[IAM のポリシーとアクセス許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)」を参照してください。

### 自分の Amazon Web Services アカウント以外のユーザーに CodeCommit リソースへのアクセスを許可したい
<a name="security_iam_troubleshoot-cross-account-access"></a>

詳細については、「[ロールを使用して AWS CodeCommit リポジトリへのクロスアカウントアクセスを設定する](cross-account.md)」を参照してください。

# での耐障害性AWS CodeCommit
<a name="disaster-recovery-resiliency"></a>

AWS グローバルインフラストラクチャは AWS リージョンおよびアベイラビリティーゾーンを中心に構築されています。AWS リージョンは、低レイテンシー、高スループット、そして高度な冗長ネットワークで接続される物理的に独立、隔離された複数のアベイラビリティーゾーンを提供します。アベイラビリティーゾーンを使用すると、中断することなくゾーン間で自動的にフェイルオーバーするアプリケーションとデータベースを設計および運用できます。アベイラビリティーゾーンは、従来の単一または複数のデータセンターインフラストラクチャよりも可用性、フォールトトレランス、および拡張性が優れています。

CodeCommit リポジトリまたは CodeCommit 承認ルールテンプレートは、それが作成された AWS リージョン にあります。詳細については、「[のリージョンと Git 接続エンドポイント AWS CodeCommit](regions.md)」を参照してください。リポジトリの復元性を高めるために、2 つのリポジトリに同時にプッシュするように Git クライアントを設定できます。詳細については、「[追加の Git リポジトリにコミットをプッシュする](how-to-mirror-repo-pushes.md)」を参照してください。

AWS リージョン とアベイラビリティーゾーンの詳細については、「[AWS グローバルインフラストラクチャ](https://aws.amazon.com/about-aws/global-infrastructure/)」を参照してください。

# AWS CodeCommit 内のインフラストラクチャセキュリティ
<a name="infrastructure-security"></a>

マネージドサービスである AWS CodeCommit は、「[Amazon Web Services: Overview of Security Processes](https://d0.awsstatic.com/whitepapers/Security/AWS_Security_Whitepaper.pdf)」(アマゾン ウェブ サービス: セキュリティプロセスの概要) ホワイトペーパーに記載されている AWS グローバルネットワークセキュリティの手順で保護されています。

AWS が公開した API コールを使用して、ネットワーク経由で CodeCommit にアクセスします。クライアントで Transport Layer Security (TLS) 1.0 以降がサポートされている必要があります。TLS 1.2 以降が推奨されています。また、Ephemeral Diffie-Hellman (DHE) や Elliptic Curve Ephemeral Diffie-Hellman (ECDHE) などの Perfect Forward Secrecy (PFS) を使用した暗号スイートもクライアントでサポートされている必要があります。これらのモードは、Java 7 以降など、最近のほとんどのシステムでサポートされています。

リクエストは、アクセスキー ID と、IAM プリンシパルに関連付けられているシークレットのアクセスキーを使用して署名する必要があります。または、[AWS Security Token Service](https://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html) (AWS STS) を使用して、一時的なセキュリティ認証情報を生成し、リクエストに署名することもできます。

これらの API オペレーションは、任意のネットワークロケーションから呼び出すことができます。ただし、CodeCommit は送信元 IP アドレスに基づく制限をサポートします。また、CodeCommit ポリシーを使用して、特定の Amazon Virtual Private Cloud (Amazon VPC) エンドポイントまたは特定の VPC からのアクセスを制御することもできます。これにより、実質的に AWS ネットワークの特定の VPC からのみ特定の CodeCommit リソースへのネットワークアクセスが分離されます。

詳細については次を参照してください:
+ [例 1: ユーザーが 1 つの で CodeCommit オペレーションを実行することを許可する AWS リージョン](customer-managed-policies.md#identity-based-policies-example-1)
+ [例 3: 指定した IP アドレス範囲から接続するユーザーにリポジトリへのアクセスを許可する](customer-managed-policies.md#identity-based-policies-example-3)
+ [インターフェイス VPC エンドポイント AWS CodeCommit での の使用](codecommit-and-interface-VPC.md)