ステップ 4: Amazon EC2 インスタンス用の IAM インスタンスプロファイルを作成する - AWS CodeDeploy

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

ステップ 4: Amazon EC2 インスタンス用の IAM インスタンスプロファイルを作成する

注記

Amazon ECS またはAWSLambda Computeプラットフォームの場合は、この手順をスキップしてください。Amazon ECS デプロイメントは、Amazon ECS サービスをデプロイし、AWSLambda のデプロイではサーバーレス Lambda 関数のバージョンをデプロイするため、Amazon EC2 インスタンスのインスタンスプロファイルは必要ありません。

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

IAM インスタンスプロファイルを作成するには、AWS CLI、IAM コンソール、または IAM API を使用します。

注記

IAM インスタンスプロファイルは、起動時の Amazon EC2 インスタンスまたは以前に起動したインスタンスにアタッチできます。詳細については、「」を参照してください。インスタンスプロファイル

Amazon EC2 インスタンス (CLI) 用の IAM インスタンスプロファイルを作成する

以下のステップでは、「CodeDeploy の使用開始」にある最初の 3 つの手順の指示に従っていることを前提としています。

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

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. 同じディレクトリで、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:::replace-with-your-s3-bucket-name/*", "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-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-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ] }
    注記

    使用する場合IAM 認証または Amazon Virtual Private Cloud (VPC) エンドポイントを使用するには、アクセス許可を追加する必要があります。「」を参照してください。Amazon Virtual Private Cloud でのCodeDeploy の使用詳細については.

  3. 同じディレクトリから、create-roleIAM ロールを作成するにはCodeDeployDemo-EC2-Instance-Profile最初のファイルの情報に基づいて、

    重要

    ファイル名の前に必ず file:// を含めてください。このコマンドでは必須です。

    aws iam create-role --role-name CodeDeployDemo-EC2-Instance-Profile --assume-role-policy-document file://CodeDeployDemo-EC2-Trust.json
  4. 同じディレクトリから、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
  5. を呼び出します。attach-role-policyを使用して、SSM が CodeDeploy エージェントをインストールできるように、ロールに Amazon EC2 Systems Manager のアクセス許可を付与します。コマンドラインを使用してパブリック Amazon S3 バケットからエージェントをインストールする場合、このポリシーは必要ありません。の詳細情報を確認するCodeDeploy エージェントのインストール

    aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore --role-name CodeDeployDemo-EC2-Instance-Profile
  6. を呼び出します。create-instance-profileコマンドの後にadd-role-to-instance-profileIAM インスタンスプロファイルを作成するにはCodeDeployDemo-EC2-Instance-Profile。インスタンスプロファイルにより、Amazon EC2 はCodeDeployDemo-EC2-Instance-ProfileAmazon EC2 インスタンスに、最初に起動されたときに 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 インスタンスプロファイルの名前を取得する必要がある場合は、」リストインスタンスプロファイルロールの IAM セクションにあるAWS CLIリファレンス

これで、Amazon EC2 インスタンスにアタッチする IAM インスタンスプロファイルを作成しました。詳細については、「」を参照してください。Amazon EC2 向けの IAM ロール()Amazon EC2 ユーザーガイド

Amazon EC2 インスタンス(コンソール)用の IAM インスタンスプロファイルを作成する

  1. AWS Management Console にサインインして、https://console.aws.amazon.com/iam の IAM コンソールを開きます。

  2. IAM コンソールのナビゲーションペインで、[] を選択します。ポリシー[] を選択してから、ポリシーの作成。([Get Started] ボタンが表示された場合は、そのボタンを選択してから、[Create Policy] を選択します)。

  3. [ポリシーの作成] ページで、[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:::replace-with-your-s3-bucket-name/*", "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-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-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ] }
    注記

    使用する場合IAM 認証または Amazon Virtual Private Cloud (VPC) エンドポイントを使用するには、アクセス許可を追加する必要があります。「」を参照してください。Amazon Virtual Private Cloud でのCodeDeploy の使用詳細については.

  4. [ポリシーの確認] を選択します。

  5. [ポリシーの作成] ページで、[CodeDeployDemo-EC2-Permissionsポリシー名] ボックスに「」と入力します。

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

  7. [Create Policy (ポリシーの作成)] を選択します。

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

  9. [Create role (ロールの作成)] ページで、[AWS service (サービス)] を選択し、[Choose the service that will use this role (このロールを使用するサービスを選択)] リストから [EC2] を選択します。

  10. [Select your use case] リストで、[EC2] を選択します。

  11. [Next: (次へ:)] を選択します アクセス許可.

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

  13. Systems Manager を使用して CodeDeploy エージェントをインストールまたは設定するには、[AmazonSSMManagedInstanceCore] の横にあるボックスを選択します。この AWS 管理ポリシーにより、インスタンスは Systems Manager サービスコア機能を使用できます。必要に応じて、検索ボックスを使用してポリシーを見つけます。コマンドラインを使用してパブリック Amazon S3 バケットからエージェントをインストールする場合、このポリシーは必要ありません。の詳細情報を確認するCodeDeploy エージェントのインストール

  14. [Next: (次へ:)] を選択します タグ

  15. [] のままにするタグの追加 (オプション)ページを変更せずに、次へ: 確認.

  16. リポジトリの []確認ページで、ロール名に、サービスロールの名前を入力します (例:CodeDeployDemo-EC2-Instance-Profile)、[] を選択してから、ロールの作成

    このサービスロールの説明を、ロールの説明

これで、Amazon EC2 インスタンスにアタッチする IAM インスタンスプロファイルを作成しました。詳細については、「」を参照してください。Amazon EC2 向けの IAM ロール()Amazon EC2 ユーザーガイド