register-on-premises-instance コマンド (IAM セッション ARN) を使用してオンプレミスインスタンスを登録します。 - AWS CodeDeploy

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

register-on-premises-instance コマンド (IAM セッション ARN) を使用してオンプレミスインスタンスを登録します。

オンプレミスインスタンスの認証と登録を最大限にコントロールするには、オンプレミスインスタンスの登録コマンドを実行し、定期的に更新される一時的な認証情報AWS Security Token Service(AWS STS). インスタンスの静的 IAM ロールは、更新されたこれらのロールを引き受けます。AWS STSCodeDeploy デプロイ操作を実行するための資格情報。

多数のインスタンスを登録する必要がある場合は、このメソッドが最も役に立ちます。これにより、CodeDeploy で登録処理を自動化できます。自分の ID と認証システムを使用して、オンプレミスインスタンスを認証でき、CodeDeploy で使用するためにインスタンス IAM セッション認証情報をサービスからインスタンスへ配布できます。

注記

または、AWS STS AssumeRole API を呼び出してオンプレミスインスタンスのセッション認証情報を取得するために、すべてのオンプレミスインスタンスに分散した共有 IAM ユーザーを使用することもできます。このメソッドは安全性が低いため、本番稼働用またはミッションクリティカルな環境での使用は推奨しません。

以下のトピックにある情報を参照し、AWS STS で生成された一時的なセキュリティ認証情報を使用してオンプレミスインスタンスを設定します。

IAM セッション ARN 登録の前提条件

オンプレミスインスタンスを設定するための前提条件 にリストされている前提条件に加えて、次の追加の要件を満たす必要があります。

IAM アクセス許可

オンプレミスインスタンスを登録するのに使用する IAM 識別子には、CodeDeploy 操作を実行するためのアクセス権限が付与される必要があります。次のことを確認してください。AWSCodeDeployFullAccess管理ポリシーが IAM ID にアタッチされます。詳細については、 を参照してください。AWSマネージドポリシーIAM ユーザーガイド

一時的な認証情報を更新するシステム

IAM セッション ARN を使用してオンプレミスインスタンスを登録する場合、一時的な認証情報を定期的に更新する適切なシステムが必要です。一時的な認証情報は 1 時間後、または認証情報が生成されたときより短い時間が指定されていればそれより早く期限切れになります。認証情報を更新するためのメソッドは 2 つあります。

  • 方法 1: 企業ネットワーク内で ID および認証システムを適切な場所で使用し、CRON スクリプトを使って ID および認証システムを定期的にポーリングし、最新のセッション認証情報をインスタンスへコピーするようにします。これにより、認証とアイデンティティの構造をAWS組織で使用する認証タイプをサポートするために CodeDeploy エージェントまたはサービスを変更する必要はありません。

  • 方法 2: インスタンスで CRON ジョブを定期的に実行して、AWS STS AssumeRoleアクションを実行し、セッション認証CodeDeploy ます。このメソッドでは、IAM ユーザーの使用、およびオンプレミスインスタンスへの認証情報のコピーをする必要はありますが、多くのオンプレミスインスタンスで同じ IAM ユーザーおよび認証情報を使用できます。

の作成と操作については、「」を参照してください。AWS STS認証情報、を参照してください。AWS Security Token ServiceAPI リファレンスそして一時的なセキュリティ認証情報を使用したアクセスの要求AWSリソース

ステップ 1: オンプレミスインスタンスが引き受ける IAM ロールを作成します。

♪AWS CLIまたは IAM コンソールを使用して、CodeDeploy との認証および操作を行うためにオンプレミスインスタンスが使用する IAM ロールを作成します。

単一の IAM ロールのみを作成する必要があります。各オンプレミスインスタンスは、このロールに付与されたアクセス権限を提供する一時認証情報を取得するためにこのロールを引き受けることができます。

作成するロールは、CodeDeploy エージェントをインストールするのに必要なファイルにアクセスするために、以下のアクセス権限が必要です。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ] }

このポリシーを、オンプレミスインスタンスがアクセスする必要のある Amazon S3 バケットにのみ制限することをお勧めします。このポリシーを制限する場合、CodeDeploy エージェントを含む Amazon S3 バケットへのアクセスを許可することを確認します。そうしない場合、CodeDeploy エージェントがオンプレミスインスタンスにインストールされる、または更新されるたびに、エラーが発生する可能性があります。Amazon S3 バケットに対するアクセスのコントロールの詳細については、「」を参照してください。Amazon S3 リソースへのアクセス許可の管理

IAM ロールを作成するには

  1. オプションを使用して create-role--role-name コマンドを呼び出し、IAM ロールの名前 (例: CodeDeployInstanceRole) と --assume-role-policy-document オプションを指定してアクセス権限を提供します。

    このインスタンスの IAM ロールを作成するときは、CodeDeployInstanceRole という名前を付け、CodeDeployRolePolicy.json という名前のファイルに必要なアクセス権限を含めます。

    aws iam create-role --role-name CodeDeployInstanceRole --assume-role-policy-document file://CodeDeployRolePolicy.json
  2. create-role コマンドを呼び出した出力で、ARN フィールドの値をメモします。以下はその例です。

    arn:aws:iam::123456789012:role/CodeDeployInstanceRole

    AWS STS AssumeRole API を使用して各インスタンスに短期的な認証情報を生成するには、ロール ARN が必要です。

    ロールの作成の詳細については、「」を参照してください。にアクセス許可を委任するロールの作成AWSサービスIAM ユーザーガイド

    既存のロールにアクセス権限を割り当てる方法については、を参照してください。put-role-policyAWS CLIコマンドリファレンス

ステップ 2: を使用して、個々のインスタンスの一時的な認証情報を生成します。AWS STS

オンプレミスインスタンスの登録に使用する一時認証情報を生成する前に、一時認証情報を生成する IAM ID (ユーザーまたはロール) を作成または選択する必要があります。sts:AssumeRole アクセス権限は、この IAM ID のポリシーの設定に含める必要があります。

付与についての詳細sts:AssumeRoleIAM アイデンティティに対するアクセス許可。「」を参照してください。にアクセス許可を委任するロールの作成AWSサービスそしてAssumeRole

一時認証情報を生成するには、2 とおりの方法があります。

  • を使用するロールの継算コマンドをAWS CLI。以下はその例です。

    aws sts assume-role --role-arn arn:aws:iam::12345ACCOUNT:role/role-arn --role-session-name session-name

    各パラメータの意味は次のとおりです。

    注記

    ID と認証システムを定期的にポーリングして最新のセッション認証情報をインスタンスにコピーする CRON スクリプトを使用している場合 (で説明している一時認証情報を更新するメソッド 1)IAM セッション ARN 登録の前提条件) の代わりに、サポートされている任意のものを使用できますAWS呼び出すSDKAssumeRole

  • が提供しているツールを使用します。AWS。

    aws-codedeploy-session-helper ツールは、AWS STS 認証情報を生成しインスタンスに配置するファイルに書き込みます。このツールは、IAM セッション ARN 登録の前提条件 で説明している一時認証情報を更新するメソッド 2 に最適です。このメソッドでは、aws-codedeploy-session-helper ツールは、各インスタンスに配置され、IAM ユーザーのアクセス権限を使用してコマンドを実行します。各インスタンスは、このツールとともに同じ IAM ユーザーの認証情報を使用します。

    詳細については、aws-codedeploy-session-helper GitHub リポジトリを参照してください。

    注記

    IAM セッション認証情報を作成した後、オンプレミスインスタンスの任意の場所に保存します。次のステップで、この場所の認証情報にアクセスするように、CodeDeploy エージェントを設定します。

続ける前に、定期的に一時認証情報を更新するために使用するシステムを確認します。一時認証情報が更新されていない場合、オンプレミスインスタンスへのデプロイは失敗します。詳細については、IAM セッション ARN 登録の前提条件 にある「一時認証情報を更新するシステム」を参照してください。

ステップ 3: オンプレミスインスタンスに設定ファイルを追加します。

ルートまたは管理者権限を使用して、オンプレミスインスタンスに設定ファイルを追加します。この設定ファイルは、IAM 認証情報とターゲットを宣言するために使用されます。AWSCodeDeploy に使用するリージョン。ファイルは、オンプレミスインスタンスの指定の場所に追加する必要があります。ファイルには、IAM の一時セッション ARN、シークレットキー ID とシークレットアクセスキー、およびターゲットが含まれている必要があります。AWSリージョン。

設定ファイルを追加するには

  1. という名前のファイルを作成します。codedeploy.onpremises.yml(Ubuntu サーバーまたは RHEL オンプレミスインスタンスの場合) またはconf.onpremises.yml(Windows Server オンプレミスインスタンスの場合) オンプレミスインスタンスの以下の場所にあります。

    • Ubuntu Server の場合:/etc/codedeploy-agent/conf

    • Windows Server の場合:C:\ProgramData\Amazon\CodeDeploy

  2. テキストエディタを使用して、新しく作成した codedeploy.onpremises.yml または conf.onpremises.yml ファイルに次の情報を追加します。

    --- iam_session_arn: iam-session-arn aws_credentials_file: credentials-file region: supported-region

    各パラメータの意味は次のとおりです。

ステップ 4: CodeDeploy デプロイ用のオンプレミスインスタンスの準備

のインストールと設定AWS CLI

オンプレミスインスタンスに AWS CLI をインストールして設定します。(AWS CLIオンプレミスインスタンスに CodeDeploy エージェントをダウンロードしてインストールするために使用されます。)

  1. をインストールするにはAWS CLIオンプレミスインスタンスで、の手順に従います。のセットアップAWS CLIAWS Command Line Interfaceユーザーガイド

    注記

    オンプレミスインスタンスを操作するための CodeDeploy コマンドは、AWS CLI。すでにインストールしている AWS CLI のバージョンがある場合は、aws --version コマンドを呼び出してバージョンを確認できます。

  2. を設定するにはAWS CLIオンプレミスインスタンスで、の手順に従います。設定:AWS CLIAWS Command Line Interfaceユーザーガイド

    重要

    を設定するとAWS CLI(例えば、aws configureコマンド)、少なくとも「」に説明のあるアクセス権限を持つ IAM ユーザーのシークレットキー ID とシークレットアクセスキーを必ず指定します。IAM セッション ARN 登録の前提条件

AWS_REGION 環境変数を設定する (Ubuntu Server および RHEL のみ)

オンプレミスインスタンスで Ubuntu サーバーまたは RHEL を実行中でなければ、このステップをスキップして「CodeDeploy エージェントをインストールする」へ進んでください。

Ubuntu サーバーまたは RHEL オンプレミスインスタンスに CodeDeploy エージェントをインストールし、新しいバージョンが使用可能になったらいつでもCodeDeploy エージェントを更新するようにインスタンスを有効にします。そのためには、AWS_REGIONCodeDeploy がサポートしているリージョンの識別子を指定します。CodeDeploy アプリケーション、デプロイグループ、およびアプリケーションリビジョンのあるリージョンの値に設定することをお勧めします (たとえば、us-west-2). リージョンのリストについては「」リージョンとエンドポイントAWS全般のリファレンス

環境変数を設定するには、端末から以下を呼び出します。

export AWS_REGION=supported-region

supported-region がリージョンの識別子である場所 (例:us-west-2)。

CodeDeploy エージェントをインストールする

ステップ 5: オンプレミスインスタンスを CodeDeploy に登録する

このステップの手順では、オンプレミスインスタンス自体からオンプレミスインスタンスを登録していることを想定します。オンプレミスインスタンスを、AWS CLI がインストールされ設定してある別のデバイスまたはインスタンスから登録できます。

を使用するAWS CLIオンプレミスインスタンスを CodeDeploy に登録して、デプロイで使用できるようにします。

AWS CLI を使用するには、「ステップ 3: オンプレミスインスタンスに設定ファイルを追加します。」で作成した一時セッション認証情報の ARN が必要です。たとえば、AssetTag12010298EX と指定したインスタンスの場合:

arn:sts:iam::123456789012:assumed-role/CodeDeployInstanceRole/AssetTag12010298EX

を呼び出します。オンプレミスインスタンスの登録コマンド、以下を指定します。

  • オンプレミスインスタンスを一意に識別する名前 (--instance-name オプションで指定)。

    重要

    オンプレミスインスタンスを識別するために、特にデバッグのため、オンプレミスインスタンスの一意な特徴を示す名前 (たとえば、もしあれば、STS 認証情報の session-name とシリアルナンバー、または内部アセット識別子など) を指定することを強くお勧めします。名前として MAC アドレスを指定した場合、MAC アドレスにはコロン (:) などが許可しない文字が含まれることに注意してください。許可された文字の一覧については、「CodeDeploy」を参照してください。

  • 複数のオンプレミスインスタンスを認証するために ステップ 1: オンプレミスインスタンスが引き受ける IAM ロールを作成します。 で設定した IAM セッション ARN。

以下はその例です。

aws deploy register-on-premises-instance --instance-name name-of-instance --iam-session-arn arn:aws:sts::account-id:assumed-role/role-to-assume/session-name

各パラメータの意味は次のとおりです。

ステップ 6: オンプレミスインスタンスにタグ付けする

以下のいずれかを使用できます。AWS CLIまたは、オンプレミスインスタンスにタグ付けするには、CodeDeploy コンソールを使用します。(CodeDeploy はオンプレミスインスタンスタグを使用してデプロイ中にデプロイターゲットを識別します。)

オンプレミスインスタンスにタグ付けするには (CLI)

  • を呼び出します。オンプレミスインスタンスへのタグの追加コマンド、以下を指定します。

    • オンプレミスインスタンスを一意に識別する名前 (--instance-names オプションで指定)。

    • 使用するオンプレミスインスタンスのタグキーの名前とタグ値 (--tags オプションで指定)。名前と値の両方を指定する必要があります。CodeDeploy は値のみがあるオンプレミスインスタンスタグを許可しません。

      以下はその例です。

      aws deploy add-tags-to-on-premises-instances --instance-names AssetTag12010298EX --tags Key=Name,Value=CodeDeployDemo-OnPrem

オンプレミスインスタンスにタグ付けするには (コンソール)

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

    注記

    で使用したのと同じアカウントまたは IAM ユーザー情報を使用してサインインします。CodeDeploy の開始方法

  2. ナビゲーションペインで、[デプロイを選択し、オンプレミスインスタンス

  3. オンプレミスインスタンスのリストで、タグ付けするオンプレミスインスタンスの名前を選択します。

  4. タグのリストで、目的のタグキーとタグ値を選択または入力します。タグキーとタグ値を入力するたびに、別の行が表示されます。最大 10 個のタグにこれを繰り返すことができます。タグを削除するには、[削除] を選択します。

  5. タグを追加したら、[Update Tags] を選択します。

ステップ 7: オンプレミスインスタンスにアプリケーションリビジョンをデプロイする

登録され、タグ付けされたオンプレミスインスタンスにアプリケーションリビジョンをデプロイする準備ができました。

Amazon EC2 インスタンスにアプリケーションリビジョンをデプロイするのと同様の方法でオンプレミスインスタンスにアプリケーションリビジョンをデプロイします。手順については、CodeDeploy を使用してデプロイを作成する を参照してください。これらの指示には、アプリケーションの作成、開発グループの作成、およびアプリケーションリビジョンの準備を含む前提条件へのリンクが含まれています。シンプルなサンプルアプリケーションリビジョンをデプロイすることが必要な場合は、チュートリアル: CodeDeploy (Windows サーバー、Ubuntu サーバー、または Red Hat エンタープライズ Linux) を使用してオンプレミスインスタンスにアプリケーションをデプロイするステップ 2: サンプルアプリケーションリビジョンを作成する で説明してあるものを作成できます。

重要

オンプレミスインスタンスを対象としたデプロイグループの作成の一部として CodeDeploy サービスロールを再利用する場合は、Tag:get*Actionサービスロールのポリシーステートメントの一部。詳細については、「ステップ 2: CodeDeploy のサービスロールの作成」を参照してください。

ステップ 8: オンプレミスインスタンスへのデプロイを追跡する

登録されタグ付けされたオンプレミスインスタンスへアプリケーションリビジョンをデプロイした後、デプロイの進行状況を追跡できます。

オンプレミスインスタンスへのデプロイの追跡と同様の方法でオンプレミスAmazon EC2 へのデプロイの追跡をします。手順については、「CodeDeploy デプロイの詳細を表示する 」を参照してください。