

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

# での ID とアクセスの管理 AWS CodeBuild
<a name="auth-and-access-control"></a>

へのアクセスには認証情報 AWS CodeBuild が必要です。これらの認証情報には、S3 バケットへのビルドアーティファクトの保存と取得、ビルドの Amazon CloudWatch Logs の表示など、 AWS リソースへのアクセス許可が必要です。以下のセクションでは、[AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) (IAM) と CodeBuild を使用してリソースに安全にアクセスする方法について説明します。

# AWS CodeBuild リソースへのアクセス許可の管理の概要
<a name="auth-and-access-control-iam-access-control-identity-based"></a>

すべての AWS リソースは AWS アカウントによって所有され、リソースを作成またはアクセスするためのアクセス許可はアクセス許可ポリシーによって管理されます。アカウント管理者は、IAM アイデンティティ (ユーザー、グループ、ロール) にアクセス許可ポリシーをアタッチできます。

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

アクセス許可を付与するときは、アクセス許可を取得するユーザー、アクセスできるリソース、およびそれらのリソースに対して実行できるアクションを決定します。

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

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

では AWS CodeBuild、プライマリリソースはビルドプロジェクトです。ポリシーで Amazon リソースネーム (ARN) を使用して、ポリシーを適用するリソースを識別します。ビルドもリソースで、ARN が関連付けられています。詳細については、の[「Amazon リソースネーム (ARN) と AWS サービス名前空間](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)」を参照してください*Amazon Web Services 全般のリファレンス*。


| リソースタイプ | ARN 形式 | 
| --- | --- | 
| ビルドプロジェクト |  `arn:aws:codebuild:region-ID:account-ID:project/project-name`  | 
| Build |  `arn:aws:codebuild:region-ID:account-ID:build/build-ID`  | 
| レポートグループ | arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name | 
| レポートを行う | arn:aws:codebuild:region-ID:account-ID:report/report-ID | 
| Fleet |  `arn:aws:codebuild:region-ID:account-ID:fleet/fleet-ID`  | 
|  すべての CodeBuild リソース  |  `arn:aws:codebuild:*`  | 
|  指定された AWS リージョン内の指定されたアカウントが所有するすべての CodeBuild リソース  |  `arn:aws:codebuild:region-ID:account-ID:*`  | 

**重要**  
リザーブドキャパシティ機能を使用すると、ソースファイル、Docker レイヤー、buildspec で指定されキャッシュされたディレクトリなどを含む、フリートインスタンスにキャッシュされたデータに、同じアカウント内の他のプロジェクトからアクセスできます。これは設計によるもので、同じアカウント内のプロジェクトがフリートインスタンスを共有できるようにしています。

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

たとえば、以下のように ARN を使用して、ステートメント内で特定のビルドプロジェクト (*myBuildProject*) を指定できます。

```
"Resource": "arn:aws:codebuild:us-east-2:123456789012:project/myBuildProject"
```

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

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

一部の CodeBuild API アクションは複数のリソースを受け入れます (例: `BatchGetProjects`)。単一のステートメントに複数のリソースを指定するには、以下のようにコンマで ARN を区切ります。

```
"Resource": [
  "arn:aws:codebuild:us-east-2:123456789012:project/myBuildProject",
  "arn:aws:codebuild:us-east-2:123456789012:project/myOtherBuildProject"
]
```

CodeBuild には、CodeBuild リソースを操作するための一連のオペレーションが用意されています。リストについては、「[AWS CodeBuild アクセス許可リファレンス](auth-and-access-control-permissions-reference.md)」を参照してください。

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

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

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

許可ポリシーでは、誰がどのリソースにアクセスできるかを記述します。

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

IAM アイデンティティにアタッチされているポリシーは、アイデンティティベースのポリシー (IAM ポリシー) と呼ばれます。リソースに添付されたポリシーは、リソースベースのポリシーと呼ばれます。CodeBuild は、アイデンティティベースのポリシーと、アカウント間のリソース共有を目的とした、特定の読み取り専用 API のリソースベースのポリシーをサポートしています。

### S3 バケットへの安全なアクセス
<a name="secure-s3-buckets"></a>

CodeBuild プロジェクトに関連付けられている S3 バケットが本人または本人が信頼するユーザーによって所有されていることを確認するために、次のアクセス許可を IAM ロールに含めることを強くお勧めします。これらのアクセス許可は、 AWS 管理ポリシーとロールには含まれません。自分で追加する必要があります。
+  `s3:GetBucketAcl` 
+  `s3:GetBucketLocation` 

プロジェクトで使用している S3 バケットの所有者が変更された場合は、自分を本来のバケット所有者にして IAM ロールのアクセス許可を更新する必要があります (まだ更新していない場合)。詳細については、「[ユーザーに CodeBuild とのやり取りを許可](setting-up-service-permissions-group.md)」および「[CodeBuild が他の AWS サービスとやり取りすることを許可する](setting-up-service-role.md)」を参照してください。

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

サービスは、 AWS CodeBuild リソースごとに一連の API オペレーションを定義します。これらの API オペレーションを実行するためのアクセス許可を付与するために、CodeBuild ではポリシーに一連のアクションを定義できます。一部の API オペレーションは、API オペレーションを実行するために複数のアクションに対するアクセス許可を要求できます。詳細については、「[AWS CodeBuild リソースとオペレーション](#arn-formats)」および「[AWS CodeBuild アクセス許可リファレンス](auth-and-access-control-permissions-reference.md)」を参照してください。

以下は、基本的なポリシーの要素です。
+ **リソース** - Amazon リソースネーム (ARN) を使用して、ポリシーを適用するリソースを識別します。
+ **アクション** – アクションのキーワードを使用して、許可または拒否するリソースオペレーションを識別します。たとえば、`codebuild:CreateProject` 許可は、`CreateProject` オペレーションを実行する許可をユーザーに与えます。
+ **効果** - ユーザーがアクションをリクエストする際の効果を指定します。許可または拒否のいずれかになります。リソースへのアクセスを明示的に許可していない場合、アクセスは暗黙的に拒否されます。リソースへのアクセスを明示的に拒否することもできます。これは、別のポリシーがアクセスを許可している場合でも、ユーザーがリソースにアクセスできないようにするために行うことができます。
+ **プリンシパル** - アイデンティティベースのポリシー (IAM ポリシー) で、ポリシーがアタッチされているユーザーが黙示的なプリンシパルとなります。リソースベースのポリシーでは、権限を受け取りたいユーザー、アカウント、サービス、またはその他のエンティティを指定します。

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

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

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

このトピックでは、アカウント管理者が IAM ID (ユーザー、グループ、ロール) にアクセス権限ポリシーをアタッチし、それによって AWS CodeBuild リソースでオペレーションを実行するアクセス権限を付与する方法を示すアイデンティティベースのポリシーの例を示します。

**重要**  
初めに、CodeBuild リソースへのアクセスを管理するための基本概念と、使用可能なオプションについて説明する概要トピックをお読みになることをお勧めします。詳細については、「[AWS CodeBuild リソースへのアクセス許可の管理の概要](auth-and-access-control-iam-access-control-identity-based.md)」を参照してください。

**Topics**
+ [AWS CodeBuild コンソールを使用するために必要なアクセス許可](#console-permissions)
+ [が Amazon Elastic Container Registry に接続 AWS CodeBuild するために必要なアクセス許可](#ecr-policies)
+ [AWS CodeBuild コンソールがソースプロバイダーに接続するために必要なアクセス許可](#console-policies)
+ [AWS の マネージド (事前定義) ポリシー AWS CodeBuild](#managed-policies)
+ [CodeBuild の管理ポリシーと通知](#notifications-permissions)
+ [AWS マネージドポリシーに対する CodeBuild の更新](#security-iam-awsmanpol-updates)
+ [カスタマー管理ポリシーの例](#customer-managed-policies)

`us-east-2` リージョンにあり、`123456789012` のアカウントで、名前が `my` で始まるビルドプロジェクトについての情報のみをユーザーが取得するのを許可するアクセス許可ポリシーの例を次に示します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetProjects",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"
    }
  ]
}
```

------

## AWS CodeBuild コンソールを使用するために必要なアクセス許可
<a name="console-permissions"></a>

 AWS CodeBuild コンソールを使用するユーザーには、 AWS アカウントの他の AWS リソースを記述できる最小限のアクセス許可セットが必要です。次のサービスからのアクセス許可を持っている必要があります。
+ AWS CodeBuild
+ Amazon CloudWatch
+ CodeCommit (ソースコードを AWS CodeCommit リポジトリに保存している場合)
+ Amazon Elastic Container Registry (Amazon ECR) (Amazon ECR リポジトリの Docker イメージに依存するビルド環境を使用している場合)
**注記**  
2022 年 7 月 26 日に、デフォルトの IAM ポリシーが更新されました。詳細については、「[が Amazon Elastic Container Registry に接続 AWS CodeBuild するために必要なアクセス許可](#ecr-policies)」を参照してください。
+ Amazon Elastic Container Service (Amazon ECS) (Amazon ECR リポジトリの Docker イメージに依存するビルド環境を使用している場合)
+ AWS Identity and Access Management (IAM)
+ AWS Key Management Service (AWS KMS)
+ Amazon Simple Storage Service (Amazon S3)

これらの最小限必要なアクセス許可よりも制限された IAM ポリシーを作成している場合、コンソールは意図したとおりには機能しません。

## が Amazon Elastic Container Registry に接続 AWS CodeBuild するために必要なアクセス許可
<a name="ecr-policies"></a>

2022 年 7 月 26 日現在、 AWS CodeBuild は Amazon ECR アクセス許可のデフォルトの IAM ポリシーを更新しました。次のアクセス許可がデフォルトポリシーから削除されました。

```
"ecr:PutImage",
"ecr:InitiateLayerUpload",
"ecr:UploadLayerPart",
"ecr:CompleteLayerUpload"
```

2022 年 7 月 26 日より前に作成された CodeBuild プロジェクトについては、次の Amazon ECR ポリシーでポリシーを更新することをお勧めします。

```
"Action": [
    "ecr:BatchCheckLayerAvailability",
    "ecr:GetDownloadUrlForLayer",
    "ecr:BatchGetImage"
]
```

ポリシーの更新の詳細については、「[ユーザーに CodeBuild とのやり取りを許可](setting-up-service-permissions-group.md)」を参照してください。

## AWS CodeBuild コンソールがソースプロバイダーに接続するために必要なアクセス許可
<a name="console-policies"></a>

 AWS CodeBuild コンソールでは、次の API アクションを使用してソースプロバイダー (GitHub リポジトリなど) に接続します。
+ `codebuild:ListConnectedOAuthAccounts`
+ `codebuild:ListRepositories`
+ `codebuild:PersistOAuthToken`
+ `codebuild:ImportSourceCredentials`

 AWS CodeBuild コンソールを使用して、ソースプロバイダー (GitHub リポジトリなど) をビルドプロジェクトに関連付けることができます。これを行うには、まず AWS CodeBuild 、コンソールへのアクセスに使用するユーザーに関連付けられた IAM アクセスポリシーに前述の API アクションを追加する必要があります。

`ListConnectedOAuthAccounts`、`ListRepositories`、および `PersistOAuthToken` の API アクションは、コードで呼び出すことを想定していません。したがって、これらの API アクションは AWS CLI および AWS SDKs に含まれません。

## AWS の マネージド (事前定義) ポリシー AWS CodeBuild
<a name="managed-policies"></a>

AWS は、 によって作成および管理されるスタンドアロン IAM ポリシーを提供することで、多くの一般的なユースケースに対処します AWS。これらの AWS 管理ポリシーは、一般的なユースケースに必要なアクセス許可を付与するため、必要なアクセス許可を調査する必要がなくなります。CodeBuild の マネージドポリシーは、問題のポリシーが付与されたユーザーの責任に応じて、IAM、 AWS CodeCommit、Amazon EC2、Amazon ECR、Amazon SNS、Amazon CloudWatch Events などの他のサービスでオペレーションを実行するアクセス許可も提供します。たとえば、`AWSCodeBuildAdminAccess` ポリシーは管理レベルのユーザーポリシーであり、このポリシーが適用されるユーザーは、プロジェクトのビルドに関する CloudWatch Events ルールと、プロジェクト関連イベントに関する通知の Amazon SNS トピック (名前にプレフィックス `arn:aws:codebuild:` が付いているトピック) を作成および管理でき、また、CodeBuild でプロジェクトとレポートグループを管理できます。詳細については、「IAM ユーザーガイド」の「[AWS マネージドポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)」を参照してください。

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

**AWSCodeBuildAdminAccess**  
CodeBuild ビルドプロジェクトを管理するためのアクセス許可を含む CodeBuild へのフルアクセスを提供します。

**AWSCodeBuildDeveloperAccess**  
CodeBuild へのアクセスを提供しますが、ビルドプロジェクトの管理は許可しません。

**AWSCodeBuildReadOnlyAccess**  
CodeBuild への読み取り専用アクセスを許可します。

CodeBuild が作成するビルド出力アーティファクトにアクセスするには、「`AmazonS3ReadOnlyAccess`」という名前の AWS 管理ポリシーもアタッチする必要があります。

CodeBuild サービスロールを作成および管理するには、 という名前 AWS の管理ポリシーもアタッチする必要があります`IAMFullAccess`。

独自のカスタム IAM ポリシーを作成して、CodeBuild アクションとリソースのための権限を許可することもできます。こうしたカスタムポリシーは、該当するアクセス許可が必要なユーザーまたはグループにアタッチできます。

**Topics**
+ [AWSCodeBuildAdminAccess](#admin-access-policy)
+ [AWSCodeBuildDeveloperAccess](#developer-access-policy)
+ [AWSCodeBuildReadOnlyAccess](#read-only-access-policy)

### AWSCodeBuildAdminAccess
<a name="admin-access-policy"></a>

「`AWSCodeBuildAdminAccess`」ポリシーは、CodeBuild へのフルアクセスを許可します。たとえば、ビルドプロジェクトを管理するアクセス許可を付与します。このポリシーは、管理者レベルのユーザーにのみ適用し、プロジェクトやレポートグループを削除する機能など、 AWS アカウント内の CodeBuild プロジェクト、レポートグループ、および関連リソースを完全に制御できるようにします。

完全な管理ポリシーについては、IAM 管理ポリシーリファレンスの[AWSCodeBuildAdminAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCodeBuildAdminAccess.html)」を参照してください。

### AWSCodeBuildDeveloperAccess
<a name="developer-access-policy"></a>

`AWSCodeBuildDeveloperAccess` ポリシーの CodeBuild のすべての機能へのアクセス、プロジェクトおよびレポートグループの関連リソースへのアクセスを許可します。このポリシーでは、ユーザーが CodeBuild プロジェクトやレポートグループ、または CloudWatch Events などの他の AWS サービスの関連リソースを削除することはできません。ほとんどのユーザーにこのポリシーを適用することをお勧めします。

完全なマネージドポリシーについては、IAM マネージドポリシーリファレンスの[AWSCodeBuildDeveloperAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCodeBuildDeveloperAccess.html)」を参照してください。

### AWSCodeBuildReadOnlyAccess
<a name="read-only-access-policy"></a>

この`AWSCodeBuildReadOnlyAccess`ポリシーは、CodeBuild および他の AWS サービスの関連リソースへの読み取り専用アクセスを許可します。ビルドの表示と実行、プロジェクトの表示、レポートグループの表示はできるが、それらの変更はできないユーザーにこのポリシーを適用します。

完全な管理ポリシーについては、IAM 管理ポリシーリファレンスの[AWSCodeBuildReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCodeBuildReadOnlyAccess.xml)」を参照してください。

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

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

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

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

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

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

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

```
    {
        "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:codebuild:*:*:project/*"}
        }
    },    
    {
        "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 マネージドポリシーに対する CodeBuild の更新
<a name="security-iam-awsmanpol-updates"></a>

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




| 変更 | 説明 | 日付 | 
| --- | --- | --- | 
|  `AWSCodeBuildAdminAccess` と `AWSCodeBuildDeveloperAccess` – 既存のポリシーに対する更新  |  CodeBuild は、Session Manager のインタラクティブビルドデバッグをサポートするために、これらのポリシーにアクセス`ssmmessages:OpenDataChannel`許可を追加しました。 `AWSCodeBuildAdminAccess` および `AWSCodeBuildDeveloperAccess`ポリシーに、この WebSocket API での SigV4 適用をサポートする Session Manager セッションリソース (`arn:aws:ssm:*:*:session/*`) の `ssmmessages:OpenDataChannel`アクションが含まれるようになりました。  | 2025 年 12 月 1 日 | 
|  `AWSCodeBuildAdminAccess`、`AWSCodeBuildDeveloperAccess` および `AWSCodeBuildReadOnlyAccess` - 既存のポリシーに対する更新  |  CodeBuild がリソースをこれらのポリシーに更新しました。 `AWSCodeBuildAdminAccess`、`AWSCodeBuildDeveloperAccess`、および `AWSCodeBuildReadOnlyAccess` ポリシーが変更され、既存のリソースが更新されました。元のリソース `arn:aws:codebuild:*` が `arn:aws:codebuild:*:*:project/*` に更新されました。  | 2024 年 11 月 15 日 | 
|  `AWSCodeBuildAdminAccess`、`AWSCodeBuildDeveloperAccess` および `AWSCodeBuildReadOnlyAccess` - 既存のポリシーに対する更新  |  CodeBuild は、ブランド AWS CodeConnections 変更をサポートするために、これらのポリシーにリソースを追加しました。 `AWSCodeBuildAdminAccess`、`AWSCodeBuildDeveloperAccess`、および `AWSCodeBuildReadOnlyAccess` ポリシーが変更され、リソース `arn:aws:codeconnections:*:*:*` が追加されました。  | 2024 年 4 月 18 日 | 
|  `AWSCodeBuildAdminAccess` と `AWSCodeBuildDeveloperAccess` - 既存のポリシーに対する更新  |  CodeBuild はこれらのポリシーにアクセス許可を追加し、Amazon Q Developer in chat applications を使用して、追加の通知タイプをサポートするようになりました。 `AWSCodeBuildAdminAccess` および `AWSCodeBuildDeveloperAccess` ポリシーが変更され、アクセス許可 `chatbot:ListMicrosoftTeamsChannelConfigurations` が追加されました。  | 2023 年 5 月 16 日 | 
|  CodeBuild が変更の追跡を開始しました  |  CodeBuild は、 AWS 管理ポリシーの変更の追跡を開始しました。  | 2021 年 5 月 16 日 | 

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

このセクションでは、 AWS CodeBuild アクションのアクセス許可を付与するユーザーポリシー例を示しています。これらのポリシーは、CodeBuild API、 AWS SDKs AWS CLI。コンソールを使用する場合は、コンソールに固有の追加のアクセス許可を付与する必要があります。詳細については、「[AWS CodeBuild コンソールを使用するために必要なアクセス許可](#console-permissions)」を参照してください。

以下のサンプル IAM ポリシーを使用して、ユーザーとロールに対して CodeBuild へのアクセスを制限できます。

**Topics**
+ [ビルドプロジェクトに関する情報の取得をユーザーに許可する](#customer-managed-policies-example-batch-get-projects)
+ [フリートに関する情報の取得をユーザーに許可](#customer-managed-policies-get-information-about-fleets)
+ [レポートグループに関する情報の取得をユーザーに許可する](#customer-managed-policies-get-information-about-report-group)
+ [レポートに関する情報の取得をユーザーに許可する](#customer-managed-policies-get-information-about-reports)
+ [ビルドプロジェクトの作成をユーザーに許可する](#customer-managed-policies-example-create-project)
+ [フリートの作成をユーザーに許可](#customer-managed-policies-example-create-fleet)
+ [レポートグループの作成をユーザーに許可する](#customer-managed-policies-example-create-report-group)
+ [フリートの削除をユーザーに許可](#customer-managed-policies-example-delete-fleet)
+ [レポートグループの削除をユーザーに許可する](#customer-managed-policies-example-delete-report-group)
+ [レポートの削除をユーザーに許可する](#customer-managed-policies-example-delete-report)
+ [ビルドプロジェクトの削除をユーザーに許可する](#customer-managed-policies-example-delete-project)
+ [ビルドプロジェクト名の一覧表示をユーザーに許可する](#customer-managed-policies-example-list-projects)
+ [ビルドプロジェクトに関する情報の変更をユーザーに許可する](#customer-managed-policies-example-update-project)
+ [フリートの変更をユーザーに許可](#customer-managed-policies-example-change-fleet)
+ [レポートグループの変更をユーザーに許可する](#customer-managed-policies-example-change-report-group)
+ [ビルドに関する情報の取得をユーザーに許可する](#customer-managed-policies-example-batch-get-builds)
+ [ビルドプロジェクトのビルド ID の一覧表示をユーザーに許可する](#customer-managed-policies-example-list-builds-for-project)
+ [ビルド ID の一覧表示をユーザーに許可する](#customer-managed-policies-example-list-builds)
+ [フリートのリスト取得をユーザーに許可](#customer-managed-policies-example-get-list-of-fleets)
+ [レポートグループの一覧表示をユーザーに許可する](#customer-managed-policies-example-get-list-of-report-groups)
+ [レポートの一覧表示をユーザーに許可する](#customer-managed-policies-example-get-list-of-reports)
+ [レポートグループのレポートの一覧表示をユーザーに許可する](#customer-managed-policies-example-get-list-of-reports-for-report-group)
+ [レポートのテストケースの一覧表示をユーザーに許可する](#customer-managed-policies-example-get-list-of-test-cases-for-report)
+ [ビルドの実行開始をユーザーに許可する](#customer-managed-policies-example-start-build)
+ [ビルドの停止試行をユーザーに許可する](#customer-managed-policies-example-stop-build)
+ [ビルドの削除試行をユーザーに許可する](#customer-managed-policies-example-delete-builds)
+ [CodeBuild が管理する Docker イメージに関する情報の取得をユーザーに許可する](#customer-managed-policies-example-list-curated-environment-images)
+ [フリートサービスロールのアクセス許可ポリシーを追加することをユーザーに許可](#customer-managed-policies-example-permission-policy-fleet-service-role)
+ [VPC ネットワークインターフェイスの作成に必要な AWS サービスへの CodeBuild アクセスを許可する](#customer-managed-policies-example-create-vpc-network-interface)
+ [拒否ステートメントを使用して、 がソースプロバイダーから切断 AWS CodeBuild されないようにする](#customer-managed-policies-example-deny-disconnect)

### ビルドプロジェクトに関する情報の取得をユーザーに許可する
<a name="customer-managed-policies-example-batch-get-projects"></a>

次のポリシーステートメントの例では、`us-east-2` リージョンにあり、`123456789012` のアカウントで、名前が `my` で始まるビルドプロジェクトについての情報をユーザーが取得するのを許可します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetProjects",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"      
    }
  ]
}
```

------

### フリートに関する情報の取得をユーザーに許可
<a name="customer-managed-policies-get-information-about-fleets"></a>

次のポリシーステートメント例では、`123456789012` アカウントの `us-east-2` リージョンのフリートに関する情報をユーザーが取得できるようにします。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetFleets",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:fleet/*"
    }
  ]
}
```

------

### レポートグループに関する情報の取得をユーザーに許可する
<a name="customer-managed-policies-get-information-about-report-group"></a>

次のポリシーステートメント例では、`us-east-2` リージョンにある `123456789012` アカウントのレポートグループについての情報をユーザーが取得するのを許可します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetReportGroups",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### レポートに関する情報の取得をユーザーに許可する
<a name="customer-managed-policies-get-information-about-reports"></a>

次のポリシーステートメント例では、`123456789012` アカウントの `us-east-2` リージョンのレポートに関する情報をユーザーが取得できるようにします。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetReports",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### ビルドプロジェクトの作成をユーザーに許可する
<a name="customer-managed-policies-example-create-project"></a>

以下のポリシーステートメントの例では、名前は問いませんが、`us-east-2` リージョンだけにある `123456789012` アカウントで、特定の CodeBuild サービスロールのみを使用したビルドプロジェクトの作成をユーザーに許可します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:CreateProject",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::111122223333:role/CodeBuildServiceRole"
    }
  ]
}
```

------

次のポリシーステートメントの例では、任意の名前でビルドプロジェクトを作成することをユーザーに許可しています。ただし、`123456789012` アカウントで `us-east-2` リージョンに限り、指定された CodeBuild サービスロールのみを使用して作成する必要があります。また、ユーザーは指定されたサービスロールを でのみ使用でき AWS CodeBuild 、他の AWS サービスでは使用できません。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:CreateProject",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::111122223333:role/CodeBuildServiceRole",
      "Condition": {
          "StringEquals": {"iam:PassedToService": "codebuild.amazonaws.com"}
      }
    }
  ]
}
```

------

### フリートの作成をユーザーに許可
<a name="customer-managed-policies-example-create-fleet"></a>

次のポリシーステートメント例では、`123456789012` アカウントの `us-east-2` リージョンでフリートを作成することをユーザーに許可します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:CreateFleet",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:fleet/*"
    }
  ]
}
```

------

### レポートグループの作成をユーザーに許可する
<a name="customer-managed-policies-example-create-report-group"></a>

次のポリシーステートメントの例では、`123456789012` アカウントの `us-east-2` リージョンにレポートグループを作成することをユーザーに許可します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:CreateReportGroup",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### フリートの削除をユーザーに許可
<a name="customer-managed-policies-example-delete-fleet"></a>

次のポリシーステートメント例では、`123456789012` アカウントの `us-east-2` リージョンでフリートを削除することをユーザーに許可します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:DeleteFleet",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:fleet/*"
    }
  ]
}
```

------

### レポートグループの削除をユーザーに許可する
<a name="customer-managed-policies-example-delete-report-group"></a>

次のポリシーステートメント例では、`123456789012` アカウントの `us-east-2` リージョンからレポートグループを削除することをユーザーに許可します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:DeleteReportGroup",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### レポートの削除をユーザーに許可する
<a name="customer-managed-policies-example-delete-report"></a>

次のポリシーステートメント例では、`123456789012` アカウントの `us-east-2` リージョンからレポートを削除することをユーザーに許可します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:DeleteReport",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### ビルドプロジェクトの削除をユーザーに許可する
<a name="customer-managed-policies-example-delete-project"></a>

次のポリシーステートメントの例では、`us-east-2` リージョンにあり、`123456789012` のアカウントで、名前が `my` で始まるビルドプロジェクトをユーザーが削除するのを許可します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:DeleteProject",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"
    }
  ]
}
```

------

### ビルドプロジェクト名の一覧表示をユーザーに許可する
<a name="customer-managed-policies-example-list-projects"></a>

以下のポリシーステートメントの例では、同じアカウントのビルドプロジェクト名のリストをユーザーが取得するのを許可します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListProjects",
      "Resource": "*"
    }
  ]
}
```

------

### ビルドプロジェクトに関する情報の変更をユーザーに許可する
<a name="customer-managed-policies-example-update-project"></a>

次のポリシーステートメントの例では、名前は問いませんが、`us-east-2` リージョンだけにある `123456789012` アカウントで、特定の AWS CodeBuild のサービスロールのみを使用したビルドプロジェクトに関する情報をユーザーが変更するのを許可します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:UpdateProject",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::111122223333:role/CodeBuildServiceRole"
    }
  ]
}
```

------

### フリートの変更をユーザーに許可
<a name="customer-managed-policies-example-change-fleet"></a>

次のポリシーステートメント例では、`123456789012` アカウントの `us-east-2` リージョンでフリートを変更することをユーザーに許可します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:UpdateFleet",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:fleet/*"
    }
  ]
}
```

------

### レポートグループの変更をユーザーに許可する
<a name="customer-managed-policies-example-change-report-group"></a>

次のポリシーステートメント例では、`123456789012` アカウントの `us-east-2` リージョンでレポートグループを変更することをユーザーに許可します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:UpdateReportGroup",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### ビルドに関する情報の取得をユーザーに許可する
<a name="customer-managed-policies-example-batch-get-builds"></a>

次のポリシーステートメントの例では、`us-east-2` リージョンにあり、`123456789012` のアカウントで、`my-build-project` および `my-other-build-project` という名前のビルドプロジェクトについての情報をユーザーが取得するのを許可します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetBuilds",
      "Resource": [
        "arn:aws:codebuild:us-east-2:111122223333:project/my-build-project",
        "arn:aws:codebuild:us-east-2:111122223333:project/my-other-build-project"
      ]
    }
  ]
}
```

------

### ビルドプロジェクトのビルド ID の一覧表示をユーザーに許可する
<a name="customer-managed-policies-example-list-builds-for-project"></a>

次のポリシーステートメントの例では、`us-east-2` リージョンにあり、`123456789012` のアカウントで、`my-build-project` および `my-other-build-project` という名前のビルドプロジェクトのビルド ID リストをユーザーが取得するのを許可します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListBuildsForProject",
      "Resource": [
        "arn:aws:codebuild:us-east-2:111122223333:project/my-build-project",
        "arn:aws:codebuild:us-east-2:111122223333:project/my-other-build-project"
      ]
    }
  ]
}
```

------

### ビルド ID の一覧表示をユーザーに許可する
<a name="customer-managed-policies-example-list-builds"></a>

以下のポリシーステートメントの例では、同じアカウントのすべてのビルド ID のリストをユーザーが取得するのを許可します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListBuilds",
      "Resource": "*"
    }
  ]
}
```

------

### フリートのリスト取得をユーザーに許可
<a name="customer-managed-policies-example-get-list-of-fleets"></a>

次のポリシーステートメント例では、`123456789012` アカウントの `us-east-2` のリージョンでフリートのリストを取得することをユーザーに許可します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListFleets",
      "Resource": "*"
    }
  ]
}
```

------

### レポートグループの一覧表示をユーザーに許可する
<a name="customer-managed-policies-example-get-list-of-report-groups"></a>

次のポリシーステートメント例では、`123456789012` アカウント `us-east-2` のリージョンでレポートグループリストを取得することをユーザーに許可します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListReportGroups",
      "Resource": "*"
    }
  ]
}
```

------

### レポートの一覧表示をユーザーに許可する
<a name="customer-managed-policies-example-get-list-of-reports"></a>

次のポリシーステートメント例では、`123456789012` アカウントの `us-east-2` のリージョンでレポートリストを取得することをユーザーに許可します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListReports",
      "Resource": "*"
    }
  ]
}
```

------

### レポートグループのレポートの一覧表示をユーザーに許可する
<a name="customer-managed-policies-example-get-list-of-reports-for-report-group"></a>

次のポリシーステートメント例では、`123456789012` アカウントの `us-east-2` のリージョンでレポートグループのレポートリストを取得することをユーザーに許可します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListReportsForReportGroup",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### レポートのテストケースの一覧表示をユーザーに許可する
<a name="customer-managed-policies-example-get-list-of-test-cases-for-report"></a>

次のポリシーステートメント例では、`123456789012` アカウントの `us-east-2` リージョンでレポートのテストケースのリストを取得することをユーザーに許可します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:DescribeTestCases",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:report-group/*"
    }
  ]
}
```

------

### ビルドの実行開始をユーザーに許可する
<a name="customer-managed-policies-example-start-build"></a>

次のポリシーステートメントの例では、`us-east-2` リージョンの `123456789012` というアカウントの、`my` という名前で始まるビルドプロジェクトのビルドをユーザーが実行する許可を与えます。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:StartBuild",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"
    }
  ]
}
```

------

### ビルドの停止試行をユーザーに許可する
<a name="customer-managed-policies-example-stop-build"></a>

次のポリシーステートメントの例では、`us-east-2` リージョンにあり、`123456789012` のアカウントで、名前が `my` で始まるビルドの停止を試みるのをユーザーに許可します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:StopBuild",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"
    }
  ]
}
```

------

### ビルドの削除試行をユーザーに許可する
<a name="customer-managed-policies-example-delete-builds"></a>

次のポリシーステートメントの例では、`123456789012` アカウントで `us-east-2` リージョンに限り、名前が `my` で始まるビルドプロジェクトでのビルドの削除試行をユーザーに許可します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchDeleteBuilds",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:project/my*"
    }
  ]
}
```

------

### CodeBuild が管理する Docker イメージに関する情報の取得をユーザーに許可する
<a name="customer-managed-policies-example-list-curated-environment-images"></a>

次のポリシーステートメントの例では、CodeBuild で管理するすべての Docker イメージに関する情報を取得することをユーザーに許可します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:ListCuratedEnvironmentImages",
      "Resource": "*"
    }
  ]
}
```

------

### フリートサービスロールのアクセス許可ポリシーを追加することをユーザーに許可
<a name="customer-managed-policies-example-permission-policy-fleet-service-role"></a>

次のリソースポリシーステートメントの例では、フリートサービスロールの VPC アクセス許可ポリシーを追加することをユーザーに許可します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CodeBuildFleetVpcCreateNI",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterface"
            ],
            "Resource": [
                "arn:aws:ec2:us-west-2:111122223333:subnet/subnet-id-1",
                "arn:aws:ec2:us-west-2:111122223333:security-group/security-group-id-1",
                "arn:aws:ec2:us-west-2:111122223333:network-interface/*"
            ]
        },
        {
            "Sid": "CodeBuildFleetVpcPermission",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeDhcpOptions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcs",
                "ec2:ModifyNetworkInterfaceAttribute",
                "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
        },
        {
            "Sid": "CodeBuildFleetVpcNIPermission",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterfacePermission"
            ],
            "Resource": "arn:aws:ec2:us-west-2:111122223333:network-interface/*",
            "Condition": {
                "StringEquals": {
                    "ec2:Subnet": [
                        "arn:aws:ec2:us-west-2:111122223333:subnet/subnet-id-1"
                    ]
                }
            }
        }
    ]
}
```

------

次のリソースポリシーステートメントの例では、フリートサービスロールにカスタム Amazon マシンイメージ (AMI) アクセス許可ポリシーを追加することをユーザーに許可します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:DescribeImages",
            "Resource": "*"
        } 
    ]
}
```

------

次の信頼ポリシーステートメントの例では、フリートサービスロールのアクセス許可ポリシーを追加することをユーザーに許可します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "CodeBuildFleetVPCTrustPolicy",
      "Effect": "Allow",
      "Principal": {
        "Service": "codebuild.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "111122223333"
        }
      }
    }
  ]
}
```

------

### VPC ネットワークインターフェイスの作成に必要な AWS サービスへの CodeBuild アクセスを許可する
<a name="customer-managed-policies-example-create-vpc-network-interface"></a>

次のポリシーステートメントの例では、2 つのサブネットを持つ VPC にネットワークインターフェイスを作成する AWS CodeBuild アクセス許可を付与します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterface",
                "ec2:DescribeDhcpOptions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DeleteNetworkInterface",
                "ec2:DescribeSubnets",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeVpcs"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterfacePermission"
            ],
            "Resource": "arn:aws:ec2:us-west-2:111122223333:network-interface/*",
            "Condition": {
                "StringEquals": {
                    "ec2:AuthorizedService": "codebuild.amazonaws.com"
                },
                "ArnEquals": {
                    "ec2:Subnet": [
                        "arn:aws:ec2:us-west-2:111122223333:subnet/subnet-id-1",
                        "arn:aws:ec2:us-west-2:111122223333:subnet/subnet-id-2"
                    ]
                }
            }
        }
    ]
}
```

------

### 拒否ステートメントを使用して、 がソースプロバイダーから切断 AWS CodeBuild されないようにする
<a name="customer-managed-policies-example-deny-disconnect"></a>

 以下のポリシーステートメントの例では、拒否ステートメントを使用して AWS CodeBuild によるソースプロバイダーの切断を防ぎます。ソースプロバイダーと接続するには、`codebuild:PersistOAuthToken` および `codebuild:ImportSourceCredentials` の逆である `codebuild:DeleteOAuthToken` を使用します。詳細については、「[AWS CodeBuild コンソールがソースプロバイダーに接続するために必要なアクセス許可](#console-policies)」を参照してください。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": "codebuild:DeleteOAuthToken",
      "Resource": "*"
    }
  ]
}
```

------

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

 AWS CodeBuild ポリシーで AWS全体の条件キーを使用して、条件を表現できます。リストについては、*IAM ユーザーガイド*の「[利用可能なキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys)」を参照してください。

アクションは、ポリシーの `Action` フィールドで指定します。アクションを指定するには、API オペレーション名 (例えば、`codebuild:` や `codebuild:CreateProject`) の前に `codebuild:StartBuild` プレフィックスを使用します。単一のステートメントに複数のアクションを指定するには、コンマで区切ります (例えば、`"Action": [ "codebuild:CreateProject", "codebuild:StartBuild" ]`)。

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

ポリシーの `Resource` フィールドでリソース値として、ワイルドカード文字 (\$1) を使用して、または使用せずに ARN を指定します。ワイルドカードを使用して複数のアクションまたはリソースを指定することができます。たとえば、`codebuild:*` は、すべての CodeBuild アクションを指定し、`codebuild:Batch*` は、`Batch` という単語で始まるすべての CodeBuild アクションを指定します。次の例では、`my` で始まる名前のすべてのビルドプロジェクトへのアクセスを許可します。

```
arn:aws:codebuild:us-east-2:123456789012:project/my*
```<a name="actions-related-to-objects-table"></a>CodeBuild API オペレーションおよびコミットされたコードのアクションで必要なアクセス権限

BatchDeleteBuilds  
 **アクション:**`codebuild:BatchDeleteBuilds`   
ビルドを削除するのに必要です。  
 **リソース:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

BatchGetBuilds  
 **アクション:**`codebuild:BatchGetBuilds`   
ビルドに関する情報を取得するのに必要です。  
 **リソース:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

BatchGetProjects  
 **アクション:**`codebuild:BatchGetProjects`   
ビルドプロジェクトに関する情報を取得するのに必要です。  
 **リソース:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

BatchGetReportGroups  
 **アクション:**`codebuild:BatchGetReportGroups`   
レポートグループに関する情報を取得するために必要です。  
 **リソース:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

BatchGetReports  
 **アクション:**`codebuild:BatchGetReports`   
レポートに関する情報を取得するのに必要です。  
 **リソース:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

BatchPutTestCases ¹  
 **アクション:**`codebuild:BatchPutTestCases`   
テストレポートを作成または更新するために必要です。  
 **リソース:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

CreateProject  
 **アクション:**`codebuild:CreateProject`、`iam:PassRole`  
ビルドプロジェクトを作成するのに必要です。  
 **リソース:**   
+  `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 
+  `arn:aws:iam::account-ID:role/role-name ` 

CreateReport ¹  
 **アクション:**`codebuild:CreateReport`   
テストレポートを作成するために必要です。  
 **リソース:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

CreateReportGroup  
 **アクション:**`codebuild:CreateReportGroup`   
レポートグループを作成するために必要です。  
 **リソース:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

CreateWebhook  
 **アクション:**`codebuild:CreateWebhook`   
ウェブフックを作成するために必要です。  
 **リソース:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

DeleteProject  
 **アクション:**`codebuild:DeleteProject`   
CodeBuild プロジェクトを削除するために必要です。  
 **リソース:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

DeleteReport  
 **アクション:**`codebuild:DeleteReport`   
レポートを削除するのに必要です。  
 **リソース:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

DeleteReportGroup  
 **アクション:**`codebuild:DeleteReportGroup`   
レポートグループを削除するのに必要です。  
 **リソース:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

DeleteSourceCredentials  
 **アクション:**`codebuild:DeleteSourceCredentials`   
GitHub、GitHub Enterprise Server、または Bitbucket リポジトリの認証情報が含まれている一連の `SourceCredentialsInfo` オブジェクトを削除するために必要です。  
 **リソース:** `*` 

DeleteWebhook  
 **アクション:**`codebuild:DeleteWebhook`   
ウェブフックを作成するために必要です。  
 **リソース:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

DescribeTestCases  
 **アクション:**`codebuild:DescribeTestCases`   
ページ分割されたテストケースのリストを返すために必要です。  
 **リソース:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

ImportSourceCredentials  
 **アクション:**`codebuild:ImportSourceCredentials`   
GitHub、GitHub Enterprise Server、または Bitbucket リポジトリの認証情報が含まれている一連の `SourceCredentialsInfo` オブジェクトをインポートするために必要です。  
 **リソース:** `*` 

InvalidateProjectCache  
 **アクション:**`codebuild:InvalidateProjectCache`   
プロジェクトのキャッシュをリセットするために必要です。  
 **リソース:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

ListBuildBatches  
 **アクション:**`codebuild:ListBuildBatches`   
ビルドバッチ ID のリストを取得するために必要です。  
 **リソース:** `*` 

ListBuildBatchesForProject  
 **アクション:**`codebuild:ListBuildBatchesForProject`   
特定のプロジェクトのビルドバッチ ID のリストを取得するために必要です。  
 **リソース:** `arn:aws:codebuild:region-ID:account-ID:project/project-name` 

ListBuilds  
 **アクション:**`codebuild:ListBuilds`   
ビルド ID のリストを取得するのに必要です。  
 **リソース:** `*` 

ListBuildsForProject  
 **アクション:**`codebuild:ListBuildsForProject`   
ビルドプロジェクトのビルド ID のリストを取得するために必要です。  
 **リソース:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

ListCuratedEnvironmentImages  
 **アクション:**`codebuild:ListCuratedEnvironmentImages`   
 AWS CodeBuildによって管理されるすべての Docker イメージに関する情報を取得するのに必要です。  
 **リソース:** `*` (必須ですが、アドレスで呼び出せる AWS リソースは参照しません) 

ListProjects  
 **アクション:**`codebuild:ListProjects`   
ビルドプロジェクト名のリストを取得するのに必要です。  
 **リソース:** `*` 

ListReportGroups  
 **アクション:**`codebuild:ListReportGroups`   
レポートグループのリストを取得するために必要です。  
 **リソース:** `*` 

ListReports  
 **アクション:**`codebuild:ListReports`   
レポートリストを取得するために必要です。  
 **リソース:** `*` 

ListReportsForReportGroup  
 **アクション:**`codebuild:ListReportsForReportGroup`   
レポートグループのレポートのリストを取得するために必要です。  
 **リソース:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

RetryBuild  
**アクション:**`codebuild:RetryBuild`   
ビルドを再試行するのに必要です。  
**リソース:** `arn:aws:codebuild:region-ID:account-ID:project/project-name `

StartBuild  
 **アクション:**`codebuild:StartBuild`   
ビルドの実行を開始するために必要です。  
 **リソース:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

StopBuild  
 **アクション:**`codebuild:StopBuild`   
実行中のビルドを停止しようとするのに必要です。  
 **リソース:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

UpdateProject  
 **アクション:** `codebuild:UpdateProject`、`iam:PassRole`  
ビルドに関する情報を変更するのに必要です。  
 **リソース:**   
+  `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 
+  `arn:aws:iam::account-ID:role/role-name ` 

UpdateProjectVisibility  <a name="UpdateProjectVisibility"></a>
 **アクション:** `codebuild:UpdateProjectVisibility`、`iam:PassRole`  
プロジェクトのビルドの公開可視性を変更するために必要です。  
 **リソース:**   
+  `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 
+  `arn:aws:iam::account-ID:role/role-name ` 

UpdateReport ¹  
 **アクション:**`codebuild:UpdateReport`   
テストレポートを作成または更新するために必要です。  
 **リソース:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

UpdateReportGroup  
 **アクション:**`codebuild:UpdateReportGroup`   
レポートグループを更新するために必要です。  
 **リソース:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

UpdateWebHook  
 **アクション:**`codebuild:UpdateWebhook`   
Webhook を更新するために必要です。  
 **リソース:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

¹ アクセス許可にのみ使用されます。このアクションに API はありません。

# タグを使用して AWS CodeBuild リソースへのアクセスを制御する
<a name="auth-and-access-control-using-tags"></a>

IAM ポリシーステートメントの条件は、CodeBuild プロジェクトベースのアクションに対するアクセス許可を指定するために使用できる構文の一部です。プロジェクトに関連付けられたタグに基づいてプロジェクトに対するアクションを許可または拒否するポリシーを作成し、これらのポリシーを、ユーザーの管理用に設定した IAM グループに適用できます。コンソールまたは を使用してプロジェクトにタグを適用する方法については AWS CLI、「」を参照してください[でのビルドプロジェクトの作成AWS CodeBuild](create-project.md)。CodeBuild SDK を使用したタグの適用については、*CodeBuild API リファレンス*の[「CreateProject」](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_CreateProject.html#API_CreateProject_RequestSyntax)および[「タグ」を参照してください。](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_Tag.html)。タグを使用して AWS リソースへのアクセスを制御する方法については、*IAM ユーザーガイド*の[「リソースタグを使用した AWS リソースへのアクセスの制御](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html)」を参照してください。

**重要**  
リザーブドキャパシティ機能を使用すると、ソースファイル、Docker レイヤー、buildspec で指定されキャッシュされたディレクトリなどを含む、フリートインスタンスにキャッシュされたデータに、同じアカウント内の他のプロジェクトからアクセスできます。これは設計によるもので、同じアカウント内のプロジェクトがフリートインスタンスを共有できるようにしています。

**Example 例 1: リソースタグに基づいてプロジェクトに対する CodeBuild アクションを制限する**  
 次の例では、キー `BatchGetProjects` とキー値 `Environment` のタグが付いているプロジェクトに対するすべての `Production` アクションを拒否します。ユーザーの管理者は、この IAM ポリシーをマネージド型のユーザーポリシーに加えて、承認されないユーザーにアタッチする必要があります。`aws:ResourceTag` 条件キーを使用して、リソースへのアクセスをリソースタグに基づいてコントロールします。    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "codebuild:BatchGetProjects"
      ],
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:ResourceTag/Environment": "Production"
        }
      }
    }
  ]
}
```

**Example 例 2: リクエストタグに基づいてプロジェクトに対する CodeBuild アクションを制限する**  
次のポリシーでは、リクエスト内のタグのキーが `CreateProject` で、キー値が `Environment` である場合、ユーザーに `Production` アクションへのアクセス許可を拒否します。さらに、このポリシーでは、`aws:TagKeys` 条件キーを使用して、リクエスト内のタグのキーが `UpdateProject` である場合に、`Environment` を許可しないことにより、これらの承認されないユーザーにプロジェクトの変更を禁止します。管理者は、これらのアクションの実行を承認されないユーザーに、マネージド型のユーザーポリシーに加えて、この　IAM ポリシーをアタッチする必要があります。この `aws:RequestTag` 条件キーを使用して、IAM リクエストで渡すことができるタグをコントロールします    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "codebuild:CreateProject"
      ],
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:RequestTag/Environment": "Production"
        }
      }
    },
    {
      "Effect": "Deny",
      "Action": [
        "codebuild:UpdateProject"
      ],
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:TagKeys": ["Environment"]
        }
      }
    }
  ]
}
```

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

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "codebuild:BatchGetReportGroups",
        "codebuild:CreateReportGroup",
        "codebuild:DeleteReportGroup",
        "codebuild:ListReportGroups",
        "codebuild:ListReportsForReportGroup",
        "codebuild:UpdateReportGroup"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "aws:RequestedRegion": "us-east-1"
        }
      }
    }
  ]
}
```

**Example 例 4: リソースタグに基づいて AWSCodeBuildDeveloperAccess への CodeBuild アクションを制限する**  
特定のタグが付けられていないすべてのレポートグループおよびプロジェクトに対する CodeBuild アクションを許可するポリシーを作成できます。たとえば、以下のポリシーでは、指定したタグが付けられたものを除くすべてのレポートグループとプロジェクトに [AWSCodeBuildDeveloperAccess](auth-and-access-control-iam-identity-based-access-control.md#developer-access-policy) と同等のアクセス許可を付与します。    
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "codebuild:StartBuild",
            "codebuild:StopBuild",
            "codebuild:BatchGet*",
            "codebuild:GetResourcePolicy",
            "codebuild:DescribeTestCases",
            "codebuild:List*",
            "codecommit:GetBranch",
            "codecommit:GetCommit",
            "codecommit:GetRepository",
            "codecommit:ListBranches",
            "cloudwatch:GetMetricStatistics",
            "events:DescribeRule",
            "events:ListTargetsByRule",
            "events:ListRuleNamesByTarget",
            "logs:GetLogEvents",
            "s3:GetBucketLocation",
            "s3:ListAllMyBuckets"
         ],
         "Resource": "*",
         "Condition": {
            "StringNotEquals": {
               "aws:ResourceTag/Status": "Secret",
               "aws:ResourceTag/Team": "Saanvi"
            }
         }
      }
   ]
}
```

# コンソールでのリソースの表示
<a name="console-resources"></a>

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

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

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