翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ステップ 4: Amazon IAMインスタンスのEC2インスタンスプロファイルを作成する
注記
Amazon ECSまたは AWS Lambda コンピューティングプラットフォーム を使用している場合は、このステップをスキップします。
Amazon EC2インスタンスには、アプリケーションが保存されている Amazon S3 バケットまたは GitHub リポジトリにアクセスするためのアクセス許可が必要です。と互換性のある Amazon EC2インスタンスを起動するには CodeDeploy、追加のIAMロール、インスタンスプロファイル を作成する必要があります。これらの手順では、Amazon IAMインスタンスにアタッチするEC2インスタンスプロファイルを作成する方法を示します。このロールは、アプリケーションが保存されている Amazon S3 バケットまたは GitHub リポジトリにアクセスするアクセス許可を CodeDeploy エージェントに付与します。
IAM インスタンスプロファイルは AWS CLI、、IAMコンソール、または IAM を使用して作成できますAPIs。
注記
IAM インスタンスプロファイルは、起動時に Amazon EC2インスタンスにアタッチすることも、以前に起動したインスタンスにアタッチすることもできます。詳細については、「インスタンスプロファイル」を参照してください。
Amazon IAMインスタンスのEC2インスタンスプロファイルを作成する (CLI)
以下のステップでは、「の開始方法 CodeDeploy」にある最初の 3 つの手順の指示に従っていることを前提としています。
-
開発マシンで、
CodeDeployDemo-EC2-Trust.json
という名前のテキストファイルを作成します。Amazon がユーザーに代わってEC2作業できるようにする以下のコンテンツを貼り付けます。{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
同じディレクトリで、
CodeDeployDemo-EC2-Permissions.json
という名前のテキストファイルを作成します。以下の内容を貼り付けます。{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ] }
注記
このポリシーは、Amazon インスタンスがアクセスする必要がある Amazon S3 バケットのみに制限することをお勧めします。 EC2 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認証または Amazon Virtual Private Cloud (VPC) エンドポイントを使用する場合は CodeDeploy、アクセス許可を追加する必要があります。詳細については、Amazon Virtual Private Cloud CodeDeploy で使用する」を参照してください。
-
同じディレクトリから コマンド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
-
同じディレクトリから、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
-
を呼び出しattach-role-policyて、 ロールに Amazon EC2 Systems Manager のアクセス許可を付与し、 が CodeDeploy エージェントをインストールSSMできるようにします。コマンドラインを使用してパブリック Amazon S3 バケットからエージェントをインストールする場合、このポリシーは必要ありません。「 CodeDeploy エージェントのインストール」の詳細を確認してください。
aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore --role-name CodeDeployDemo-EC2-Instance-Profile
-
create-instance-profile コマンドを呼び出してから add-role-to-instance-profile コマンドを呼び出し、 という名前のIAMインスタンスプロファイルを作成します
CodeDeployDemo-EC2-Instance-Profile
。インスタンスプロファイルを使用するとEC2、EC2インスタンスが最初に起動されたときに、Amazon は という名前のIAMロールを Amazon インスタンスCodeDeployDemo-EC2-Instance-Profile
に渡すことができます。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 リファレンス の IAMセクションのlist-instance-profiles-for「-role」を参照してください。
これで、Amazon IAMインスタンスにアタッチするEC2インスタンスプロファイルが作成されました。詳細については、IAM「Amazon ユーザーガイド」の「Amazon のロールEC2」を参照してください。 EC2
Amazon IAMインスタンスのEC2インスタンスプロファイルを作成する (コンソール)
にサインイン AWS Management Console し、 でIAMコンソールを開きますhttps://console.aws.amazon.com/iam/
。 -
IAM コンソールのナビゲーションペインで、ポリシー を選択し、ポリシーの作成 を選択します。
-
アクセス許可の指定ページで、 を選択しますJSON。
JSON
サンプルコードを削除します。次のコードを貼り付けます。
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ] }
注記
このポリシーは、Amazon インスタンスがアクセスする必要がある Amazon S3 バケットのみに制限することをお勧めします。 EC2 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認証または Amazon Virtual Private Cloud (VPC) エンドポイントを使用する場合は CodeDeploy、アクセス許可を追加する必要があります。詳細については、Amazon Virtual Private Cloud CodeDeploy で使用する」を参照してください。
-
[Next (次へ)] を選択します。
-
[確認および作成] ページで、[ポリシー名] ボックスに「
CodeDeployDemo-EC2-Permissions
」と入力します。 -
(オプション) [説明] に、ポリシーの説明を入力します。
-
[Create policy] を選択します。
ナビゲーションペインで [Roles] を選択し、続いて [Create role] を選択します。
-
ユースケース で、EC2ユースケースを選択します。
[Next (次へ)] を選択します。
-
ポリシーのリストで、作成したポリシーの横にあるチェックボックスをオンにします (CodeDeployDemo-EC2-Permissions )。必要に応じて、検索ボックスを使用してポリシーを見つけます。
-
Systems Manager を使用して CodeDeploy エージェントをインストールまたは設定するには、A mazonSSMManagedInstanceCoreの横にあるチェックボックスをオンにします。この AWS マネージドポリシーにより、インスタンスは Systems Manager サービスコア機能を使用できます。必要に応じて、検索ボックスを使用してポリシーを見つけます。コマンドラインを使用してパブリック Amazon S3 バケットからエージェントをインストールする場合、このポリシーは必要ありません。「 CodeDeploy エージェントのインストール」の詳細を確認してください。
-
[Next (次へ)] を選択します。
-
[名前、確認、および作成] ページで、[ロール名] にサービスロールの名前 (例えば、
CodeDeployDemo-EC2-Instance-Profile
) を入力し、[ロールを作成] を選択します。このサービスロールの説明を、[Role description] ボックスに入力することもできます。
これで、Amazon IAMインスタンスにアタッチするEC2インスタンスプロファイルが作成されました。詳細については、IAM「Amazon ユーザーガイド」の「Amazon のロールEC2」を参照してください。 EC2