

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

# CodeDeploy の開始方法
<a name="getting-started-codedeploy"></a>

**Topics**
+ [ステップ 1: セットアップ](getting-started-setting-up.md)
+ [ステップ 2: CodeDeployのサービスのロールを作成する](getting-started-create-service-role.md)
+ [ステップ 3: CodeDeploy ユーザーのアクセス許可を制限する](getting-started-policy.md)
+ [ステップ 4: Amazon EC2 インスタンス用の IAM インスタンスプロファイルを作成する](getting-started-create-iam-instance-profile.md)

# ステップ 1: セットアップ
<a name="getting-started-setting-up"></a>

 AWS CodeDeploy を初めて使用する場合は、セットアップ手順を完了する必要があります。ステップでは、 AWS アカウント (まだ持っていない場合) と、プログラムによるアクセス権を持つ管理ユーザーを作成します。

このガイドでは、管理ユーザーは **CodeDeploy 管理ユーザー**と呼ばれます。

## にサインアップする AWS アカウント
<a name="sign-up-for-aws"></a>

がない場合は AWS アカウント、次の手順を実行して作成します。

**にサインアップするには AWS アカウント**

1. [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup) を開きます。

1. オンラインの手順に従います。

   サインアップ手順の一環として、電話またはテキストメッセージを受け取り、電話キーパッドで検証コードを入力します。

   にサインアップすると AWS アカウント、 *AWS アカウントのルートユーザー* が作成されます。ルートユーザーには、アカウントのすべての AWS のサービス とリソースへのアクセス権があります。セキュリティベストプラクティスとして、ユーザーに管理アクセス権を割り当て、[ルートユーザーアクセスが必要なタスク](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)の実行にはルートユーザーのみを使用するようにしてください。

AWS サインアッププロセスが完了すると、 から確認メールが送信されます。[https://aws.amazon.com/](https://aws.amazon.com/) の **[マイアカウント]** をクリックして、いつでもアカウントの現在のアクティビティを表示し、アカウントを管理することができます。

## 管理アクセスを持つユーザーを作成する
<a name="create-an-admin"></a>

にサインアップしたら AWS アカウント、日常的なタスクにルートユーザーを使用しないように AWS アカウントのルートユーザー、 を保護し AWS IAM アイデンティティセンター、 を有効にして管理ユーザーを作成します。

**を保護する AWS アカウントのルートユーザー**

1.  **ルートユーザー**を選択し、 AWS アカウント E メールアドレスを入力して、アカウント所有者[AWS マネジメントコンソール](https://console.aws.amazon.com/)として にサインインします。次のページでパスワードを入力します。

   ルートユーザーを使用してサインインする方法については、「*AWS サインイン ユーザーガイド*」の「[ルートユーザーとしてサインインする](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial)」を参照してください。

1. ルートユーザーの多要素認証 (MFA) を有効にします。

   手順については、*IAM* [ユーザーガイドの AWS アカウント 「ルートユーザー (コンソール) の仮想 MFA デバイス](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html)を有効にする」を参照してください。

**管理アクセスを持つユーザーを作成する**

1. IAM アイデンティティセンターを有効にします。

   手順については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[AWS IAM アイデンティティセンターの有効化](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html)」を参照してください。

1. IAM アイデンティティセンターで、ユーザーに管理アクセスを付与します。

   を ID ソース IAM アイデンティティセンターディレクトリ として使用する方法のチュートリアルについては、「 *AWS IAM アイデンティティセンター ユーザーガイド*」の[「デフォルトを使用してユーザーアクセスを設定する IAM アイデンティティセンターディレクトリ](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html)」を参照してください。

**管理アクセス権を持つユーザーとしてサインインする**
+ IAM アイデンティティセンターのユーザーとしてサインインするには、IAM アイデンティティセンターのユーザーの作成時に E メールアドレスに送信されたサインイン URL を使用します。

  IAM Identity Center ユーザーを使用してサインインする方法については、*AWS サインイン 「 ユーザーガイド*[」の AWS 「 アクセスポータルにサインイン](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html)する」を参照してください。

**追加のユーザーにアクセス権を割り当てる**

1. IAM アイデンティティセンターで、最小特権のアクセス許可を適用するというベストプラクティスに従ったアクセス許可セットを作成します。

   手順については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[アクセス許可セットを作成する](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html)」を参照してください。

1. グループにユーザーを割り当て、そのグループにシングルサインオンアクセス権を割り当てます。

   手順については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[グループを追加する](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html)」を参照してください。

これで、**CodeDeploy 管理ユーザー**として作成してサインインできました。

## プログラマチックアクセス権を付与する
<a name="getting-started-setting-up-programmatic"></a>

ユーザーが の AWS 外部とやり取りする場合は、プログラムによるアクセスが必要です AWS マネジメントコンソール。プログラムによるアクセスを許可する方法は、 がアクセスするユーザーのタイプによって異なります AWS。

ユーザーにプログラムによるアクセス権を付与するには、以下のいずれかのオプションを選択します。


****  

| プログラムによるアクセス権を必要とするユーザー | 目的 | 方法 | 
| --- | --- | --- | 
| IAM | (推奨) コンソール認証情報を一時的な認証情報として使用して AWS CLI、、 AWS SDKs、または AWS APIs。 |  使用するインターフェイスの指示に従ってください。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/getting-started-setting-up.html)  | 
|  ワークフォースアイデンティティ (IAM アイデンティティセンターで管理されているユーザー)  | 一時的な認証情報を使用して AWS CLI、、 AWS SDKs、または AWS APIs。 |  使用するインターフェイスの指示に従ってください。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/getting-started-setting-up.html)  | 
| IAM | 一時的な認証情報を使用して AWS CLI、、 AWS SDKs、または AWS APIs。 | 「IAM [ユーザーガイド」の「 AWS リソースでの一時的な認証情報](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)の使用」の手順に従います。 | 
| IAM | (非推奨)長期認証情報を使用して、 AWS CLI、 AWS SDKs、または AWS APIs。 |  使用するインターフェイスの指示に従ってください。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/getting-started-setting-up.html)  | 

**重要**  
CodeDeploy 管理ユーザーをワークフォース ID (IAM Identity Center で管理されるユーザー) として AWS CLIで設定することを強くお勧めします。このガイドの手順の多くは、 を使用して設定を実行していること AWS CLI を前提としています。

**重要**  
を設定すると AWS CLI、 AWS リージョンを指定するように求められる場合があります。「*AWS 全般のリファレンス*」の「[リージョンエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html#codedeploy_region)」に記載されているサポートされているリージョンから一つを選びます。

# ステップ 2: CodeDeployのサービスのロールを作成する
<a name="getting-started-create-service-role"></a>

では AWS、サービスロールを使用して AWS サービスにアクセス許可を付与し、 AWS リソースにアクセスできるようにします。サービスロールにアタッチするポリシーによって、どの リソースにサービスがアクセスできるか、およびそれらのリソースで何ができるかが決まります。

CodeDeploy に作成するサービスロールで、コンピューティングプラットフォームに必要なアクセス許可がを付与する必要があります。​ 複数のコンピューティングプラットフォームにデプロイした場合、それぞれにサービスロールを 1 つずつ作成します。アクセス許可を追加するには、次の AWS 指定されたポリシーを 1 つ以上アタッチします。

EC2/オンプレミスのデプロイには、**AWSCodeDeployRole** ポリシーをアタッチします。これは、サービスロールで以下を実行するためのアクセス許可を提供します。
+ インスタンスのタグを読み取る、または Amazon EC2 Auto Scaling グループ名により Amazon EC2 インスタンスを識別します。
+ Amazon EC2 Auto Scaling グループ、ライフサイクルフック、スケーリングポリシーの読み取り、作成、更新、削除を行います。
+ Amazon SNS トピックに情報を公開します。
+ CloudWatch アラームに関する情報を取得します。
+ Elastic Load Balancing を読み、更新します。
**注記**  
 起動テンプレートを使用して Auto Scaling グループを作成する場合は、次のアクセス許可を追加する必要があります。  
 `ec2:RunInstances` 
 `ec2:CreateTags` 
 `iam:PassRole` 
詳細については、「[Amazon EC2 Auto Scaling ユーザーガイド](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-template.html)」、「[Auto Scaling グループの起動テンプレートの作成](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-launch-template-permissions.html)」、および「*起動テンプレートサポート*」にはの「[ステップ 2: サービスロールを作成する](#getting-started-create-service-role)」を参照してください。

Amazon ECS のデプロイの場合、サポートサービスへのフルアクセスが必要な場合は、 **AWSCodeDeployRoleForECS** ポリシーをアタッチします。これは、サービスロールで以下を実行するためのアクセス許可を提供します。
+  Amazon ECS タスクセットを読んで、更新、削除します。
+  Elastic Load Balancing ターゲットグループ、リスナー、ルールを更新します。
+  AWS Lambda 関数を呼び出します。
+  Amazon S3 バケットのリビジョンファイルにアクセスします。
+  CloudWatch アラームに関する情報を取得します。
+ Amazon SNS トピックに情報を公開します。

Amazon ECS のデプロイの場合、サポートサービスへの制限付きのアクセスが必要な場合は、**AWSCodeDeployRoleForECSLimited** ポリシーをアタッチします。これは、サービスロールで以下を実行するためのアクセス許可を提供します。
+  Amazon ECS タスクセットを読んで、更新、削除します。
+  CloudWatch アラームに関する情報を取得します。
+ Amazon SNS トピックに情報を公開します。

 AWS Lambda デプロイでは、Amazon SNS への発行を許可する場合は、 **AWSCodeDeployRoleForLambda**ポリシーをアタッチします。これは、サービスロールで以下を実行するためのアクセス許可を提供します。
+  AWS Lambda 関数とエイリアスの読み取り、更新、呼び出しを行います。
+  Amazon S3 バケットのリビジョンファイルにアクセスします。
+  CloudWatch アラームに関する情報を取得します。
+  Amazon SNS トピックに情報を公開します。

 AWS Lambda デプロイでは、Amazon SNS へのアクセスを制限する場合は、 **AWSCodeDeployRoleForLambdaLimited**ポリシーをアタッチします。これは、サービスロールで以下を実行するためのアクセス許可を提供します。
+  AWS Lambda 関数とエイリアスの読み取り、更新、呼び出しを行います。
+  Amazon S3 バケットのリビジョンファイルにアクセスします。
+  CloudWatch アラームに関する情報を取得します。

また、サービスロールの設定の一環として、アクセス許可を付与するエンドポイントを指定するために信頼関係を更新します。

サービスロールは、IAM コンソール、 AWS CLI、または IAM APIs を使用して作成できます。

**Topics**
+ [サービスロールの作成 (コンソール)](#getting-started-create-service-role-console)
+ [サービスロールの作成 (CLI)](#getting-started-create-service-role-cli)
+ [サービスロール ARN の取得 (コンソール)](#getting-started-get-service-role-console)
+ [サービスロール ARN の取得 (CLI)](#getting-started-get-service-role-cli)

## サービスロールの作成 (コンソール)
<a name="getting-started-create-service-role-console"></a>

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

1. ナビゲーションペインで **ロール** を選択してから、**ロールを作成する** を選択します。

1. **AWS サービス**を選択し、「**ユースケース**」のドロップダウンリストから [**CodeDeploy**] を選択します。

1. ユースケースを選択します。
   +  EC2/オンプレミスのデプロイ **CodeDeploy** を選択 
   +  AWS Lambda デプロイの場合は、**CodeDeploy for Lambda** を選択します。
   +  Amazon ECS デプロイの場合は、**CodeDeploy-ECS** を選択 

1. [**次へ**] を選択します。

1. 「**アクセス許可を追加**」ページに、そのユースケースに適したアクセス許可ポリシーが表示されます。[**次へ**] を選択します。

1. **[名前、確認、および作成]** ページで、**[ロール名]** にサービスロールの名前 (例えば、**CodeDeployServiceRole**) を入力し、**[ロールを作成]** を選択します。

   このサービスロールの説明を、[**Role description**] ボックスに入力することもできます。

1. 現在サポートされているすべてのエンドポイントへのアクセス許可をサービスロールに付与する場合は、この手順を終了します。

   このサービスロールから一部のエンドポイントへのアクセスを制限するには、この手順の残りのステップに進みます。

1. ロールの一覧で、作成したロール (`CodeDeployServiceRole`) を検索し、選択します。

1. **[信頼関係]** タブを選択します。

1. **[Edit trust policy]** (信頼ポリシーを編集) を選択します。

   次のポリシーでは、サポートされているすべてのエンドポイントにアクセスする権限をサービスロールに付与します。

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "",
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "codedeploy.amazonaws.com"
                   ]
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

   サポートされているエンドポイントの一部にのみアクセスする権限をサービスロールに付与するには、信頼ポリシーテキストボックスの内容を以下のポリシーに置き換えます。アクセスを除外するエンドポイントの行を削除し、[**ポリシーの更新**] を選択します。

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "",
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       
                       "codedeploy.us-east-1.amazonaws.com",
                       "codedeploy.us-east-2.amazonaws.com",
                       "codedeploy.us-west-1.amazonaws.com",
                       "codedeploy.us-west-2.amazonaws.com",
                       "codedeploy.ca-central-1.amazonaws.com",
                       "codedeploy.ap-east-1.amazonaws.com",                  
                       "codedeploy.ap-northeast-1.amazonaws.com",
                       "codedeploy.ap-northeast-2.amazonaws.com",
                       "codedeploy.ap-northeast-3.amazonaws.com",
                       "codedeploy.ap-southeast-1.amazonaws.com",
                       "codedeploy.ap-southeast-2.amazonaws.com",
                       "codedeploy.ap-southeast-3.amazonaws.com",
                       "codedeploy.ap-southeast-4.amazonaws.com",
                       "codedeploy.ap-south-1.amazonaws.com",
                       "codedeploy.ap-south-2.amazonaws.com",
                       "codedeploy.ca-central-1.amazonaws.com",
                       "codedeploy.eu-west-1.amazonaws.com",
                       "codedeploy.eu-west-2.amazonaws.com",
                       "codedeploy.eu-west-3.amazonaws.com",
                       "codedeploy.eu-central-1.amazonaws.com",
                       "codedeploy.eu-central-2.amazonaws.com",
                       "codedeploy.eu-north-1.amazonaws.com",
                       "codedeploy.eu-south-1.amazonaws.com",
                       "codedeploy.eu-south-2.amazonaws.com",
                       "codedeploy.il-central-1.amazonaws.com",
                       "codedeploy.me-central-1.amazonaws.com",
                       "codedeploy.me-south-1.amazonaws.com",
                       "codedeploy.sa-east-1.amazonaws.com"
                   ]
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

サービスロールの作成の詳細については、*IAM ユーザーガイド*の[「 AWS サービスにアクセス許可を委任するロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-creatingrole-service.html)」を参照してください。

## サービスロールの作成 (CLI)
<a name="getting-started-create-service-role-cli"></a>

1. 開発マシンで、たとえば、`CodeDeployDemo-Trust.json` という名前のテキストファイルを作成します。このファイルは、CodeDeploy がユーザーの代理操作の実行を許可するのに使用されます。

   次のいずれかを行います。
   + サポートされているすべての AWS リージョンへのアクセスを許可するには、次のコンテンツを ファイルに保存します。

     ```
     {
         "Version": "2012-10-17",		 	 	 
         "Statement": [
             {
                 "Sid": "",
                 "Effect": "Allow",
                 "Principal": {
                     "Service": [
                         "codedeploy.amazonaws.com"
                     ]
                 },
                 "Action": "sts:AssumeRole"
             }
         ]
     }
     ```
   + サポートされているリージョンの一部にのみアクセスする権限を付与するには、ファイルに次の内容を入力し、アクセスを除外するリージョンの行を削除します。

     ```
     {
         "Version": "2012-10-17",		 	 	 
         "Statement": [
             {
                 "Sid": "",
                 "Effect": "Allow",
                 "Principal": {
                     "Service": [
                         
                         "codedeploy.us-east-1.amazonaws.com",
                         "codedeploy.us-east-2.amazonaws.com",
                         "codedeploy.us-west-1.amazonaws.com",
                         "codedeploy.us-west-2.amazonaws.com",
                         "codedeploy.ca-central-1.amazonaws.com",
                         "codedeploy.ap-east-1.amazonaws.com",                  
                         "codedeploy.ap-northeast-1.amazonaws.com",
                         "codedeploy.ap-northeast-2.amazonaws.com",
                         "codedeploy.ap-northeast-3.amazonaws.com",
                         "codedeploy.ap-southeast-1.amazonaws.com",
                         "codedeploy.ap-southeast-2.amazonaws.com",
                         "codedeploy.ap-southeast-3.amazonaws.com",
                         "codedeploy.ap-southeast-4.amazonaws.com",
                         "codedeploy.ap-south-1.amazonaws.com",
                         "codedeploy.ap-south-2.amazonaws.com",
                         "codedeploy.ca-central-1.amazonaws.com",
                         "codedeploy.eu-west-1.amazonaws.com",
                         "codedeploy.eu-west-2.amazonaws.com",
                         "codedeploy.eu-west-3.amazonaws.com",
                         "codedeploy.eu-central-1.amazonaws.com",
                         "codedeploy.eu-central-2.amazonaws.com",
                         "codedeploy.eu-north-1.amazonaws.com",
                         "codedeploy.eu-south-1.amazonaws.com",
                         "codedeploy.eu-south-2.amazonaws.com",
                         "codedeploy.il-central-1.amazonaws.com",
                         "codedeploy.me-central-1.amazonaws.com",
                         "codedeploy.me-south-1.amazonaws.com",
                         "codedeploy.sa-east-1.amazonaws.com"
                     ]
                 },
                 "Action": "sts:AssumeRole"
             }
         ]
     }
     ```
**注記**  
リストにある最後のエンドポイントの後にコンマを使用しないでください。

1. 同じディレクトリから、**create-role** コマンドを呼び出し、先ほど作成したテキストファイルの情報に基づく **CodeDeployServiceRole** という名前のサービスロールを作成します。

   ```
   aws iam create-role --role-name CodeDeployServiceRole --assume-role-policy-document file://CodeDeployDemo-Trust.json
   ```
**重要**  
ファイル名の前に必ず `file://` を含めてください。このコマンドでは必須です。

   コマンドの出力で、`Arn` オブジェクトの下にある `Role` エントリの値を書きとめておきます。これは、後でデプロイグループを作成する際に必要になります。値を忘れた場合は、[サービスロール ARN の取得 (CLI)](#getting-started-get-service-role-cli) の手順に従います。

1. 使用する管理ポリシーは、コンピューティングプラットフォーム によって異なります。
   + EC2/オンプレミスコンピューティングプラットフォームにデプロイする場合は、以下を行います。

     **attach-role-policy** コマンドを呼び出し、**CodeDeployServiceRole** という名前のサービスロールに対して、**AWSCodeDeployRole** という名前の IAM マネージドポリシーに基づくアクセス許可を付与します。例えば、次のようになります。

     ```
     aws iam attach-role-policy --role-name CodeDeployServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSCodeDeployRole
     ```
   + Lambda AWS コンピューティングプラットフォームへのデプロイの場合:

     **attach-role-policy** コマンドを呼び出し、**CodeDeployServiceRole** という名前のサービスロールに対して、**AWSCodeDeployRoleForLambda** または **AWSCodeDeployRoleForLambdaLimited** という名前の IAM マネージドポリシーに基づくアクセス許可を付与します。例: 

     ```
     aws iam attach-role-policy --role-name CodeDeployServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSCodeDeployRoleForLambda
     ```
   + Amazon ECS コンピューティングプラットフォームへのデプロイの場合。

     **attach-role-policy** コマンドを呼び出し、**CodeDeployServiceRole** という名前のサービスロールに対して、**AWSCodeDeployRoleForECS** または **AWSCodeDeployRoleForECSLimited** という名前の IAM マネージドポリシーに基づくアクセス許可を付与します。例: 

     ```
     aws iam attach-role-policy --role-name CodeDeployServiceRole --policy-arn arn:aws:iam::aws:policy/AWSCodeDeployRoleForECS
     ```

サービスロールの作成の詳細については、*IAM* [ユーザーガイドの「 AWS サービスのロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/create-role-xacct.html)」を参照してください。

## サービスロール ARN の取得 (コンソール)
<a name="getting-started-get-service-role-console"></a>

IAM コンソールを使用してサービスロールの ARN を取得するには:

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

1. ナビゲーションペインで **Roles (ロール) ** を選択してください。

1. [**フィルタ**] テキストボックスに、「**CodeDeployServiceRole**」と入力して、Enter キーを押します。

1. [**CodeDeployServiceRole**] を選択します。

1. [**ロールの ARN**] フィールドの値を書き留めます。

## サービスロール ARN の取得 (CLI)
<a name="getting-started-get-service-role-cli"></a>

を使用してサービスロールの ARN AWS CLI を取得するには、 という名前のサービスロールに対して **get-role** コマンドを呼び出します**CodeDeployServiceRole**。

```
aws iam get-role --role-name CodeDeployServiceRole --query "Role.Arn" --output text
```

返される値はサービスロールの ARN です。

# ステップ 3: CodeDeploy ユーザーのアクセス許可を制限する
<a name="getting-started-policy"></a>

セキュリティ上の理由から、[ステップ 1: セットアップ](getting-started-setting-up.md) で作成した管理ユーザーのアクセス許可を、CodeDeploy でのデプロイの作成と管理に必要なアクセス許可のみに制限することをお勧めします。

以下の一連の手順を使用して、CodeDeploy 管理ユーザーのアクセス許可を制限します。

**[開始する前に]**
+ [ステップ 1: セットアップ](getting-started-setting-up.md) の手順に従って IAM Identity Center で CodeDeploy 管理ユーザーを作成したことを確認します。

**アクセス権限セットを作成するには**

このアクセス許可セットは後で CodeDeploy 管理ユーザーに割り当てます。

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/singlesignon/](https://console.aws.amazon.com/singlesignon/) で AWS IAM アイデンティティセンター コンソールを開きます。

1. ナビゲーションペインで [**アクセス許可セット**] を選択し、[**アクセス許可セットの作成**] を選択します。

1. [**カスタム許可セット**] を選択します。

1. [**次へ**] を選択します。

1. [**インラインポリシー**] を選択します。

1. サンプルコードを削除します。

1. 以下のポリシーを追加します。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "CodeDeployAccessPolicy",
               "Effect": "Allow",
               "Action": [
                   "autoscaling:*",
                   "codedeploy:*",
                   "ec2:*",
                   "lambda:*",
                   "ecs:*",
                   "elasticloadbalancing:*",
                   "iam:AddRoleToInstanceProfile",
                   "iam:AttachRolePolicy",
                   "iam:CreateInstanceProfile",
                   "iam:CreateRole",
                   "iam:DeleteInstanceProfile",
                   "iam:DeleteRole",
                   "iam:DeleteRolePolicy",
                   "iam:GetInstanceProfile",
                   "iam:GetRole",
                   "iam:GetRolePolicy",
                   "iam:ListInstanceProfilesForRole",
                   "iam:ListRolePolicies",
                   "iam:ListRoles",
                   "iam:PutRolePolicy",
                   "iam:RemoveRoleFromInstanceProfile",
                   "s3:*",
                   "ssm:*"
               ],
               "Resource": "*"
           },
           {
               "Sid": "CodeDeployRolePolicy",
               "Effect": "Allow",
               "Action": [
                   "iam:PassRole"
               ],
               "Resource": "arn:aws:iam::111122223333:role/CodeDeployServiceRole"
           }
       ]
   }
   ```

------

   このポリシーで、*arn:aws:iam::account-ID:role/CodeDeployServiceRole* を [ステップ 2: CodeDeployのサービスのロールを作成する](getting-started-create-service-role.md) で作成した CodeDeploy サービスロールの ARN 値を置換します。ARN 値は、IAM コンソールのサービスロールの詳細ページにあります。

   前述のポリシーにより AWS Lambda コンピューティングプラットフォーム、EC2/オンプレミスコンピューティングプラットフォーム、および Amazon ECS コンピューティングプラットフォームにアプリケーションをデプロイできます。

   このドキュメントで提供されている CloudFormation テンプレートを使用して、CodeDeploy と互換性のある Amazon EC2 インスタンスを起動できます。 CloudFormation テンプレートを使用してアプリケーション、デプロイグループ、またはデプロイ設定を作成するには、次のように CodeDeploy 管理ユーザーのアクセス許可ポリシーに `cloudformation:*` アクセス許可を追加して、 CloudFormationおよび CloudFormation が依存する AWS サービスとアクションへのアクセスを提供する必要があります。

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

****  

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

------

1. [**次へ**] を選択します。

1. 「**アクセス許可セット名**」に、次のように入力します。

   ```
   CodeDeployUserPermissionSet
   ```

1. [**次へ**] を選択します。

1. [**確認と作成**] ページで情報を確認し、[**グループの作成**] を選択します。

**許可セットを CodeDeploy 管理ユーザーに割り当てるには**

1. ナビゲーションペインで を選択し**AWS アカウント**、現在サインイン AWS アカウント している の横にあるチェックボックスをオンにします。

1. [**ユーザーまたはグループの割り当て**] ボタンを選択します。

1. [**ユーザー**] タブを選択します。

1. CodeDeploy 管理ユーザーの横にあるチェックボックスをオンにします。

1. [**次へ**] を選択します。

1. [`CodeDeployUserPermissionSet`] のチェックボックスをオンにします。

1. [**次へ**] を選択します。

1. 情報を確認し、[**送信**] を選択します。

   これで、CodeDeploy 管理ユーザー と を `CodeDeployUserPermissionSet`に割り当て AWS アカウント、それらをバインドしました。

**CodeDeploy 管理ユーザーとしてサインアウトしてサインインし直すには**

1. サインアウトする前に、CodeDeploy 管理ユーザーの AWS アクセスポータル URL とユーザー名、ワンタイムパスワードがあることを確認してください。
**注記**  
この情報がない場合は、IAM Identity Center の CodeDeploy 管理ユーザー詳細ページに移動し、[**パスワードをリセットする**]、[**ワンタイムパスワードの生成 [...]**] を選択して、もう一度 [**パスワードをリセットする**] と、画面に情報が表示されます。

1. からサインアウトします AWS。

1.  AWS アクセスポータル URL をブラウザのアドレスバーに貼り付けます。

1. CodeDeploy 管理ユーザーとしてサインインする。

   画面に **AWS アカウント** ボックスが表示されます。

1. **AWS アカウント** を選択し、CodeDeploy 管理ユーザーと許可セットを割り当てた AWS アカウント の名前を選択します。

1. `CodeDeployUserPermissionSet` の横にある [**管理コンソール**] を選択します。

    AWS マネジメントコンソール が表示されます。これで、制限付きのアクセス許可を持つ CodeDeploy 管理ユーザーとしてサインインしました。このユーザーとして CodeDeploy 関連の操作*のみ*を実行できるようになりました。

# ステップ 4: Amazon EC2 インスタンス用の IAM インスタンスプロファイルを作成する
<a name="getting-started-create-iam-instance-profile"></a>

**注記**  
 Amazon ECS または AWS Lambda コンピューティングプラットフォーム を使用している場合は、このステップをスキップします。

Amazon EC2 インスタンスには、アプリケーションが保存される Amazon S3 バケットまたは GitHub レポジトリへのアクセス許可が必要です。CodeDeploy と互換性のある Amazon EC2 インスタンスを起動するには、追加の IAM ロールである *インスタンスプロファイル* を作成する必要があります。以下の手順では、Amazon EC2 インスタンスにアタッチする IAM インスタンスプロファイルを作成する方法を示します。このロールでは、アプリケーションが保存される Amazon S3 バケットまたは GitHub リポジトリへのアクセス許可が CodeDeploy エージェントに付与されます。

IAM インスタンスプロファイルは AWS CLI、、IAM コンソール、または IAM APIs を使用して作成できます。

**注記**  
IAM インスタンスプロファイルは、起動時の Amazon EC2 インスタンスまたは以前に起動したインスタンスにアタッチできます。詳細については、「[インスタンスプロファイル](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-usingrole-instanceprofile.html)」を参照してください。

**Topics**
+ [Amazon EC2 インスタンス(CLI)の IAM インスタンスプロファイルを作成する](#getting-started-create-iam-instance-profile-cli)
+ [Amazon EC2 インスタンス(コンソール)の IAM インスタンスプロファイルを作成する](#getting-started-create-iam-instance-profile-console)

## Amazon EC2 インスタンス(CLI)の IAM インスタンスプロファイルを作成する
<a name="getting-started-create-iam-instance-profile-cli"></a>

以下のステップでは、「[CodeDeploy の開始方法](getting-started-codedeploy.md)」にある最初の 3 つの手順の指示に従っていることを前提としています。

1. 開発マシンで、`CodeDeployDemo-EC2-Trust.json` という名前のテキストファイルを作成します。Amazon EC2 によるユーザーの代理操作の実行を許可するには、次の内容を貼り付けます。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "",
               "Effect": "Allow",
               "Principal": {
                   "Service": "ec2.amazonaws.com"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "",
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "ec2.cn-north-1.amazonaws.com",
                       "ec2.cn-northwest-1.amazonaws.com"
                   ]
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

1. 同じディレクトリで、`CodeDeployDemo-EC2-Permissions.json` という名前のテキストファイルを作成します。以下の内容を貼り付けます。

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Action": [
                   "s3:Get*",
                   "s3:List*"
               ],
               "Effect": "Allow",
               "Resource": "*"
           }
       ]
   }
   ```
**注記**  
このポリシーを、Amazon EC2 インスタンスがアクセスする必要のある Amazon S3 バケットにのみ制限することをお勧めします。CodeDeploy エージェントを含む Amazon S3 バケットへのアクセスを必ず許可してください。そうしない場合、CodeDeploy エージェントがインスタンス上にインストールされる、または更新されるときに、エラーが発生する可能性があります。Amazon S3 中の CodeDeploy リソースキットバケットのみへの IAM インスタンスアクセスは許すが、アクセスを防止するバケットのための行を削除するには  

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "s3:Get*",
           "s3:List*"
         ],
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket/*",
           "arn:aws:s3:::aws-codedeploy-us-east-2/*",
           "arn:aws:s3:::aws-codedeploy-us-east-1/*",
           "arn:aws:s3:::aws-codedeploy-us-west-1/*",
           "arn:aws:s3:::aws-codedeploy-us-west-2/*",
           "arn:aws:s3:::aws-codedeploy-ca-central-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-west-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-west-2/*",
           "arn:aws:s3:::aws-codedeploy-eu-west-3/*",
           "arn:aws:s3:::aws-codedeploy-eu-central-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-central-2/*",
           "arn:aws:s3:::aws-codedeploy-eu-north-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-south-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-south-2/*",
           "arn:aws:s3:::aws-codedeploy-il-central-1/*",
           "arn:aws:s3:::aws-codedeploy-ap-east-1/*",
           "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*",
           "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*",
           "arn:aws:s3:::aws-codedeploy-ap-northeast-3/*",
           "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*",        
           "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*",
           "arn:aws:s3:::aws-codedeploy-ap-southeast-3/*",
           "arn:aws:s3:::aws-codedeploy-ap-southeast-4/*",
           "arn:aws:s3:::aws-codedeploy-ap-south-1/*",
           "arn:aws:s3:::aws-codedeploy-ap-south-2/*",
           "arn:aws:s3:::aws-codedeploy-me-central-1/*",
           "arn:aws:s3:::aws-codedeploy-me-south-1/*",
           "arn:aws:s3:::aws-codedeploy-sa-east-1/*"
         ]
       }
     ]
   }
   ```
**注記**  
[IAM 認可](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-authorization)または CodeDeploy を使用する Amazon Virtual Private Cloud (VPC) エンドポイントを使用したい場合は、アクセス許可を追加する必要があります。詳細については、[[Amazon Virtual Private Cloud で CodeDeploy を使う](https://docs.aws.amazon.com/codedeploy/latest/userguide/vpc-endpoints)] を参照してください。

1. 同じディレクトリから、**create-role** コマンドを呼び出して、最初のファイルの情報に基づいて **CodeDeployDemo-EC2-Instance-Profile** という名前の IAM ロールを作成します。
**重要**  
ファイル名の前に必ず `file://` を含めてください。このコマンドでは必須です。

   ```
   aws iam create-role --role-name CodeDeployDemo-EC2-Instance-Profile --assume-role-policy-document file://CodeDeployDemo-EC2-Trust.json
   ```

1. 同じディレクトリから、**put-role-policy** コマンドを呼び出して、2 番目のファイルの情報に基づいて **CodeDeployDemo-EC2-Instance-Profile** という名前のロールアクセス許可を付与します。
**重要**  
ファイル名の前に必ず `file://` を含めてください。このコマンドでは必須です。

   ```
   aws iam put-role-policy --role-name CodeDeployDemo-EC2-Instance-Profile --policy-name CodeDeployDemo-EC2-Permissions --policy-document file://CodeDeployDemo-EC2-Permissions.json
   ```

1. **attach-role-policy** を呼び出して、SSM が CodeDeploy エージェントをインストールできるように、ロールに Amazon EC2 Systems Manager とアクセス許可を付与します。コマンドラインを使用してパブリック Amazon S3 バケットからエージェントをインストールする場合、このポリシーは必要ありません。「[CodeDeploy エージェントのインストール](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install.html)」の詳細を確認してください。

   ```
   aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore --role-name CodeDeployDemo-EC2-Instance-Profile
   ```

1. **create-instance-profile** コマンドに続いて **add-role-to-instance-profile** コマンドを呼び出して、**CodeDeployDemo-EC2-Instance-Profile** という名前の IAM インスタンスプロファイルを作成します。インスタンスプロファイルにより、Amazon EC2 は最初に起動されたときに **CodeDeployDemo-EC2-Instance-Profile** という名前の IAM ロールを Amazon EC2 インスタンスに渡します。

   ```
   aws iam create-instance-profile --instance-profile-name CodeDeployDemo-EC2-Instance-Profile
   aws iam add-role-to-instance-profile --instance-profile-name CodeDeployDemo-EC2-Instance-Profile --role-name CodeDeployDemo-EC2-Instance-Profile
   ```

   IAM インスタンスプロファイルの名前を取得する必要がある場合は、[AWS CLI リファレンス](https://docs.aws.amazon.com/cli/latest/reference/iam/list-instance-profiles-for-role.html)の IAM セクションで「*list-instance-profiles-for-role*」を参照してください。

これで、IAM インスタンスにアタッチする Amazon EC2 インスタンスプロファイルを作成しました。詳細については、[Amazon EC2 ユーザーガイド](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) の「*Amazon EC2 の IAM ロール*」を参照してください。

## Amazon EC2 インスタンス(コンソール)の IAM インスタンスプロファイルを作成する
<a name="getting-started-create-iam-instance-profile-console"></a>

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

1. IAM コンソールのナビゲーションペインで、[**Policies**]、[**Create policy**] の順に選択します。

1. **[アクセス許可の指定]** ページで、**[JSON]** を選択します。

1. `JSON` サンプルコードを削除します。

1. 次のコードを貼り付けます。

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Action": [
                   "s3:Get*",
                   "s3:List*"
               ],
               "Effect": "Allow",
               "Resource": "*"
           }
       ]
   }
   ```
**注記**  
このポリシーを、Amazon EC2 インスタンスがアクセスする必要のある Amazon S3 バケットにのみ制限することをお勧めします。CodeDeploy エージェントを含む Amazon S3 バケットへのアクセスを必ず許可してください。そうしない場合、CodeDeploy エージェントがインスタンス上にインストールされる、または更新されるときに、エラーが発生する可能性があります。Amazon S3 中の CodeDeploy リソースキットバケットのみへの IAM インスタンスアクセスは許すが、アクセスを防止するバケットのための行を削除するには  

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "s3:Get*",
           "s3:List*"
         ],
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket/*",
           "arn:aws:s3:::aws-codedeploy-us-east-2/*",
           "arn:aws:s3:::aws-codedeploy-us-east-1/*",
           "arn:aws:s3:::aws-codedeploy-us-west-1/*",
           "arn:aws:s3:::aws-codedeploy-us-west-2/*",
           "arn:aws:s3:::aws-codedeploy-ca-central-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-west-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-west-2/*",
           "arn:aws:s3:::aws-codedeploy-eu-west-3/*",
           "arn:aws:s3:::aws-codedeploy-eu-central-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-central-2/*",
           "arn:aws:s3:::aws-codedeploy-eu-north-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-south-1/*",
           "arn:aws:s3:::aws-codedeploy-eu-south-2/*",
           "arn:aws:s3:::aws-codedeploy-il-central-1/*",
           "arn:aws:s3:::aws-codedeploy-ap-east-1/*",
           "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*",
           "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*",
           "arn:aws:s3:::aws-codedeploy-ap-northeast-3/*",
           "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*",        
           "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*",
           "arn:aws:s3:::aws-codedeploy-ap-southeast-3/*",
           "arn:aws:s3:::aws-codedeploy-ap-southeast-4/*",
           "arn:aws:s3:::aws-codedeploy-ap-south-1/*",
           "arn:aws:s3:::aws-codedeploy-ap-south-2/*",
           "arn:aws:s3:::aws-codedeploy-me-central-1/*",
           "arn:aws:s3:::aws-codedeploy-me-south-1/*",
           "arn:aws:s3:::aws-codedeploy-sa-east-1/*"
         ]
       }
     ]
   }
   ```
**注記**  
[IAM 認可](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-authorization)または CodeDeploy を使用する Amazon Virtual Private Cloud (VPC) エンドポイントを使用したい場合は、アクセス許可を追加する必要があります。詳細については、[[Amazon Virtual Private Cloud で CodeDeploy を使う](https://docs.aws.amazon.com/codedeploy/latest/userguide/vpc-endpoints)] を参照してください。

1.  [**次へ**] を選択します。

1. [**確認および作成**] ページで、[**ポリシー名**] ボックスに「**CodeDeployDemo-EC2-Permissions**」と入力します。

1.  (オプション) [**説明**] に、ポリシーの説明を入力します。

1. [**Create policy**] を選択します。

1. ナビゲーションペインで [**Roles**] を選択し、続いて [**Create role**] を選択します。

1. [**ユースケース**] で、[**EC2**] ユースケースを選択します。

1. [**次へ**] を選択します。

1.  ポリシーのリストで、作成したポリシー (**CodeDeployDemo-EC2-Permissions**) の横にあるチェックボックスをオンにします。必要に応じて、検索ボックスを使用してポリシーを見つけます。

1.  Systems Manager を使用して CodeDeploy エージェントをインストールまたは設定するには、[**AmazonSSMManagedInstanceCore**] の横にあるボックスを選択します。この AWS 管理ポリシーにより、インスタンスは Systems Manager サービスコア機能を使用できます。必要に応じて、検索ボックスを使用してポリシーを見つけます。コマンドラインを使用してパブリック Amazon S3 バケットからエージェントをインストールする場合、このポリシーは必要ありません。「[CodeDeploy エージェントのインストール](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install.html)」の詳細を確認してください。

1.  [**次へ**] を選択します。

1. **[名前、確認、および作成]** ページで、**[ロール名]** にサービスロールの名前 (例えば、**CodeDeployDemo-EC2-Instance-Profile**) を入力し、**[ロールを作成]** を選択します。

   このサービスロールの説明を、[**Role description**] ボックスに入力することもできます。

これで、IAM インスタンスにアタッチする Amazon EC2 インスタンスプロファイルを作成しました。詳細については、[Amazon EC2 ユーザーガイド](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) の「*Amazon EC2 の IAM ロール*」を参照してください。