register-premises-instance コマンド (IAM ユーザー ARN) を使用してオンプレミスインスタンスを登録します。 - AWS CodeDeploy

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

register-premises-instance コマンド (IAM ユーザー ARN) を使用してオンプレミスインスタンスを登録します。

認証に固定 IAM ユーザー認証情報を使って、でオンプレミスインスタンスの設定、登録、タグ付けをほとんど自分で行う場合は、これらの手順に従います。

ステップ 1: オンプレミスインスタンスの IAM ユーザーを作成します。

認証や CodeDeploy とのやり取りにオンプレミスインスタンスが使用する IAM ユーザーを作成します。

重要

それぞれの参加しているオンプレミスインスタンスに対して個別の IAM ユーザーを作成する必要があります。複数のオンプレミスインスタンスに対して個々の IAM ユーザーを再利用しようとすると、CodeDeploy でこれらのオンプレミスインスタンス登録やタグ付けができない場合があります。それらのオンプレミスインスタンスへのデプロイは、無期限の保留状態のまま、または完全にエラーとなる場合があります。

IAM ユーザーに、CodeDeployUser-onPrem など、目的を識別するための名前を割り当てることをお勧めします。

♪AWS CLIまたは IAM コンソールを使用して IAM ユーザーを作成します。詳細については、 を参照してください。で IAM ユーザーを作成するAWSアカウント

重要

使用するかどうかAWS CLIまたは IAM コンソールで新しい IAM ユーザーを作成するには、ユーザーに提供されるユーザー ARN をメモしておきます。この情報は後に ステップ 4: オンプレミスインスタンスに設定ファイルを追加します。ステップ 8: オンプレミスインスタンスをCodeDeploy に登録します。 で必要になります。

ステップ 2: IAM ユーザーにアクセス許可を割り当てます。

オンプレミスインスタンスが Amazon S3 バケットからアプリケーションリビジョンをデプロイする場合、IAM ユーザーにそれらのバケットと対話するためのアクセス権限を割り当てる必要があります。♪AWS CLIまたは IAM コンソールを使用してアクセス権限を割り当てます。

注記

GitHub リポジトリからのみアプリケーションリビジョンをデプロイする場合は、このステップを飛ばして ステップ 3: IAM ユーザー認証情報を取得する へ進んでください。(「」で作成した IAM ユーザーについての情報はまだ必要です。ステップ 1: オンプレミスインスタンスの IAM ユーザーを作成します。。 後のステップで使用します。)

アクセス権限 (CLI) を割り当てるには

  1. を呼び出すのに使用している Amazon EC2 インスタンスまたはデバイスに、以下のポリシーの内容を含むファイルを作成します。AWS CLI。ファイルに CodeDeploy-OnPrem-Permissions.json のような名前を付けて、ファイルを保存します。

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

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

    以下はその例です。

    { "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/*" ] } ] }
  2. を呼び出します。put-user-policyコマンドで、IAM ユーザーの名前を指定します。--user-nameオプション)、ポリシーの名前 (--policy-nameオプション)、および新しく作成されたポリシードキュメントへのパス(--policy-documentオプション)。たとえば、CodeDeploy-OnPrem-Permissions.json というファイルが、コマンドを呼び出しているのと同じディレクトリ (フォルダ) にあるとします。

    重要

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

    aws iam put-user-policy --user-name CodeDeployUser-OnPrem --policy-name CodeDeploy-OnPrem-Permissions --policy-document file://CodeDeploy-OnPrem-Permissions.json

アクセス権限を割り当てるには (コンソール)

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

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

  3. [Create Your Own Policy] (独自のポリシーを作成) の横で、[Select] (選択) を選択します。

  4. [ポリシー名] ボックスに、このポリシーの名前を入力します (CodeDeploy-OnPrem-Permissions など)。

  5. ポリシードキュメント[] ボックスに、以下のアクセス権限の式を入力するか貼り付けることで、AWS CodeDeployのポリシーで指定されたどの Amazon S3 バケットからでも IAM ユーザーアカウントに代わって、オンプレミスインスタンスにアプリケーションリビジョンをデプロイするには、以下を実行します。

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ] }
  6. [Create Policy] (ポリシーの作成) を選択します。

  7. ナビゲーションペインで [Users] (ユーザー) を選択します。

  8. ユーザーのリストで、で作成した IAM ユーザーを探して選択します。ステップ 1: オンプレミスインスタンスの IAM ユーザーを作成します。

  9. [Permissions] タブを開き、[Managed Policies] で [Attach Policy] を選択します。

  10. CodeDeploy-OnPrem-Permissions という名前のポリシーを選択した後、[ポリシーのアタッチ] を選択します。

ステップ 3: IAM ユーザー認証情報を取得する

IAM ユーザーのシークレットキー ID およびシークレットアクセスキーを取得します。これは、ステップ 4: オンプレミスインスタンスに設定ファイルを追加します。 で必要になります。♪AWS CLIまたは IAM コンソールを使用してシークレットキー ID およびシークレットアクセスキーを取得します。

注記

すでにシークレットキー ID およびシークレットアクセスキーがある場合、このステップを飛ばして ステップ 4: オンプレミスインスタンスに設定ファイルを追加します。 へ進んでください。

認証情報 (CLI) を取得するには

  1. を呼び出します。リストアクセスキーコマンドで、IAM ユーザーの名前を指定します。--user-nameオプション)、アクセスキー ID だけを照会する(--queryそして--outputオプション)。以下はその例です。

    aws iam list-access-keys --user-name CodeDeployUser-OnPrem --query "AccessKeyMetadata[*].AccessKeyId" --output text
  2. キーが出力に表示されないか、1 つのキーについての情報だけが出力に表示されたら、create access-keyコマンドで、IAM ユーザーの名前を指定します。--user-nameオプション):

    aws iam create-access-key --user-name CodeDeployUser-OnPrem

    create-access-key コマンドを呼び出した出力で、AccessKeyId フィールドおよび SecretAccessKey フィールドの値をメモします。この情報は ステップ 4: オンプレミスインスタンスに設定ファイルを追加します。 で必要になります。

    重要

    このシークレットアクセスキーにアクセスできるのは、この時だけです。このシークレットアクセスキーを忘れた、またはアクセスできなくなった場合、ステップ 3: IAM ユーザー認証情報を取得する のステップに従い、新しいキーを生成する必要があります。

  3. 2 つのアクセスキーが既にリストされている場合は、delete access-keyコマンドで、IAM ユーザーの名前を指定します。--user-nameオプション)、および削除するアクセスキーの ID(--access-key-idオプション)。それから、このステップの前のほうにある説明のとおり、create-access-key コマンドを呼び出します。delete-access-key コマンドを呼び出す例は以下のとおりです。

    aws iam delete-access-key --user-name CodeDeployUser-OnPrem --access-key-id access-key-ID
    重要

    を呼び出したらdelete-access-keyのコマンドでこれらのアクセスキーの 1 つを削除します。また、オンプレミスインスタンスが「」にある説明のとおりにすでにそのアクセスキーを使用しています。ステップ 4: オンプレミスインスタンスに設定ファイルを追加します。の場合は、ステップ 4: オンプレミスインスタンスに設定ファイルを追加します。再び、この IAM ユーザーと関連付けられた異なるアクセスキー ID およびシークレットアクセスキーを指定します。そうしない場合、そのオンプレミスインスタンスへのデプロイは、無期限の保留状態のまま、または完全にエラーとなる可能性があります。

認証情報を取得するには (コンソール)

    1. IAM コンソール(https://console.aws.amazon.com/iam/)を開きます。

    2. ユーザーのリストがナビゲーションペインに表示されない場合は、[Users] を選択します。

    3. ユーザーのリストで、で作成した IAM ユーザーを探して選択します。ステップ 1: オンプレミスインスタンスの IAM ユーザーを作成します。

  1. [Security credentials] タブにキーが表示されていない場合、または 1 つしか表示されていない場合は、[Create access key] を選択します。

    2 つのアクセスキーが表示されている場合は、片方を削除する必要があります。片方のアクセスキーの横にある [Delete] を選択した後、[Create access key] を選択します。

    重要

    [] を選択した場合削除片方のアクセスキーの横にある、「」で説明するように、オンプレミスインスタンスがすでにこのアクセスキーを使用しています。ステップ 4: オンプレミスインスタンスに設定ファイルを追加します。の場合は、ステップ 4: オンプレミスインスタンスに設定ファイルを追加します。再び、この IAM ユーザーと関連付けられた異なるアクセスキー ID およびシークレットアクセスキーを指定します。そうしない場合、そのオンプレミスインスタンスへのデプロイは、無期限の保留状態のまま、または完全にエラーとなる可能性があります。

  2. [Show] を選択し、アクセスキー ID とシークレットアクセスキーをメモします。この情報は、次のステップで必要になります。または、[Download .csv file] を選択して、アクセスキー ID とシークレットアクセスキーのコピーを保存することができます。

    重要

    認証情報をメモする、または、ダウンロードするのでない限り、このシークレットアクセスキーにアクセスできるのは、この時だけです。このシークレットアクセスキーを忘れた、またはアクセスできなくなった場合、ステップ 3: IAM ユーザー認証情報を取得する のステップに従い、新しいキーを生成する必要があります。

  3. [Close] を選択して [Users > IAM User Name] ページに戻ります。

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

ルートまたは管理者権限を使用して、オンプレミスインスタンスに設定ファイルを追加します。この設定ファイルは、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 ファイルに次の情報を追加します。

    --- aws_access_key_id: secret-key-id aws_secret_access_key: secret-access-key iam_user_arn: iam-user-arn region: supported-region

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

    重要

    [] を選択した場合削除[] のアクセスキーの横にあるステップ 3: IAM ユーザー認証情報を取得するまた、オンプレミスインスタンスがすでに関連するアクセスキー ID およびシークレットアクセスキーを使用している場合は、「」の手順に従わなければなりません。ステップ 4: オンプレミスインスタンスに設定ファイルを追加します。をクリックして、この IAM ユーザーと関連付けられた異なるアクセスキー ID およびシークレットアクセスキーを指定します。そうしない場合、オンプレミスインスタンスへのデプロイは、無期限の保留状態のまま、または完全にエラーとなる可能性があります。

ステップ 5: AWS CLI のインストールと設定

オンプレミスインスタンスに AWS CLI をインストールして設定します。(AWS CLIで使われるステップ 7: CodeDeploy エージェントをインストールする をオンプレミスインスタンスに CodeDeploy エージェントをダウンロードしてインストールします。)

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

    注記

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

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

    重要

    を設定するとAWS CLI(例えば、aws configureコマンド) を使用する場合は、少なくとも、以下を持つ IAM ユーザーのシークレットキー ID およびシークレットアクセスキーを必ず指定します。AWSで指定したアクセス権限に加えて、アクセス許可オンプレミスインスタンスを設定するための前提条件。これにより、オンプレミスインスタンスに CodeDeploy エージェントをダウンロードしてインストールすることができます。

    { "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codedeploy:*" ], "Resource" : "*" }, { "Effect" : "Allow", "Action" : [ "s3:Get*", "s3:List*" ], "Resource" : [ "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 ユーザーのいずれかに割り当てることができます。ステップ 1: オンプレミスインスタンスの IAM ユーザーを作成します。または、別の IAM ユーザーに。これらのアクセス権限を IAM ユーザーに割り当てるには、「」の手順に従います。ステップ 1: オンプレミスインスタンスの IAM ユーザーを作成します。をクリックします。このステップ中のアクセス権限の代わりにこれらのアクセス権限を使用します。

ステップ 6: AWS_REGION 環境変数を設定する (Ubuntu Server および RHEL のみ)

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

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

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

export AWS_REGION=supported-region

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

ステップ 7: CodeDeploy エージェントをインストールする

オンプレミスインスタンスに、CodeDeploy エージェントをインストールします。

ステップ 8: オンプレミスインスタンスをCodeDeploy に登録します。

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

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

  1. を使用する前にAWS CLIの場合は、「」で作成した IAM ユーザーのユーザー ARN が必要です。ステップ 1: オンプレミスインスタンスの IAM ユーザーを作成します。。ユーザー ARN がまだない場合は、get-userコマンドで、IAM ユーザーの名前を指定します。--user-nameオプション)、ユーザ ARN だけを照会する(--queryそして--outputオプション):

    aws iam get-user --user-name CodeDeployUser-OnPrem --query "User.Arn" --output text
  2. を呼び出します。オンプレミスインスタンスの登録コマンドで、以下を指定します。

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

      重要

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

    • 「」で作成した IAM ユーザーのユーザー ARNステップ 1: オンプレミスインスタンスの IAM ユーザーを作成します。(と--iam-user-arnオプション)。

      以下はその例です。

      aws deploy register-on-premises-instance --instance-name AssetTag12010298EX --iam-user-arn arn:aws:iam::444455556666:user/CodeDeployUser-OnPrem

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

次のいずれかを使用できます。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. [CodeDeploy] メニューで、[オンプレミスインスタンス

  3. オンプレミスインスタンスのリストで、タグ付けするオンプレミスインスタンスの横にある矢印を選択します。

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

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

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

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

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

重要

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

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

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

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