ステップ 4. のIAMインスタンスプロファイルを作成します Amazon EC2 インスタンス - AWS CodeDeploy

ステップ 4. のIAMインスタンスプロファイルを作成します Amazon EC2 インスタンス

注記

をご使用の場合 Amazon ECS または AWS Lambda compute platform 、このステップはスキップしてください。 Amazon ECS 展開 Amazon ECS サービス、および AWS Lambda サーバーレス配備 Lambda 関数バージョン、つまり Amazon EC2 インスタンスは必要ありません。

あなたの Amazon EC2 インスタンスは、 Amazon S3 アプリケーションが保存されるGitHubリポジトリです。起動するには Amazon EC2 互換性があるインスタンス CodeDeploy、追加の IAM 役割、 インスタンスプロファイル. これらの手順では、 IAM インスタンスプロファイルを Amazon EC2 インスタンス。この役割では、 CodeDeploy アクセス権 Amazon S3 バケット、またはアプリケーションを保存するGitHubリポジトリです。

_を作成できます。 IAM インスタンスプロファイルと AWS CLI、 IAM コンソール、または IAM API。

注記

_を添付できます IAM インスタンスプロファイルを Amazon EC2 インスタンスは、インスタンスを起動したとき、または以前に起動したインスタンスに対して実行されます。詳細については、以下を参照してください。 インスタンスプロファイル.

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

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

  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)エンドポイント CodeDeploy、さらに権限を追加する必要があります。参照 使用 CodeDeploy 付き Amazon Virtual Private Cloud 詳細については、を参照してください。

  3. 同じディレクトリから、 create-role コマンドを使って、 IAM ロール名 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 という役割を与えるコマンド CodeDeployDemo-EC2-Instance-Profile 2 番目のファイルの情報に基づく権限:

    重要

    ファイル名の前に必ず 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 役割を与える Amazon EC2 Systems Manager 権限が与えられ、 SSM は、 CodeDeploy エージェント。コマンドラインを使用してパブリック 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-profile コマンドを使って、 IAM インスタンスプロファイル名 CodeDeployDemo-EC2-Instance-Profile。 インスタンスプロファイルでは、 Amazon EC2 合格するには IAM ロール名 CodeDeployDemo-EC2-Instance-Profile を 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 参照.

これで、 IAM インスタンスプロファイルを Amazon EC2 インスタンス。詳細については、以下を参照してください。 IAM 役割 Amazon EC2Amazon EC2 ユーザーガイド.

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

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

  2. の IAM コンソールのナビゲーションペインで、 方針を選択し、次に ポリシーの作成. ( はじめに ボタンが表示されたら、それを選択し、次に ポリシーの作成。)

  3. ポリシーの作成 ページで、以下を JSON(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)エンドポイント CodeDeploy、さらに権限を追加する必要があります。参照 使用 CodeDeploy 付き Amazon Virtual Private Cloud 詳細については、を参照してください。

  4. 選択 ポリシーのレビュー.

  5. ポリシーの作成 ページ、タイプ CodeDeployDemo-EC2-Permissionsポリシー名 ボックス。

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

  7. 選択 ポリシーの作成.

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

  9. [ロールの作成] ページで、[AWS サービス] を選択し、[このロールを使用するサービスを選択] リストから以下を選択します。 EC2.

  10. から 使用例を選択してください リスト、選択 EC2.

  11. [Next: Permissions] を選択します。

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

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

  14. 選択 次へ: Tags (タグ)

  15. [タグの追加 (オプション)] ページは変更せず、[Next: Review (次へ: 確認)] を選択します。

  16. [Review] ページの [Role name] に、サービスロールの名前を入力します (例: CodeDeployDemo-EC2-Instance-Profile), and then choose Create role.

    また、[ロールの説明] に、このサービスロールの説明を入力することもできます。

これで、 IAM インスタンスプロファイルを Amazon EC2 インスタンス。詳細については、以下を参照してください。 IAM 役割 Amazon EC2Amazon EC2 ユーザーガイド.