暗号化された AMI をアカウント間で共有して、暗号化された EC2 インスタンスを起動する方法を教えてください。

所要時間2分
0

暗号化された Amazon マシンイメージ (AMI) を AWS アカウント間で共有して、暗号化された Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを起動したいです。

解決策

暗号化された AMI を共有し、暗号化されたインスタンスを起動するには、次の前提条件と手順に従ってください。
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行時にエラーが発生する場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

前提条件

AWS アカウント

AMI を共有するには、次の 2 種類の AWS アカウントが必要です。

  • ソースアカウント カスタム AMI を構築し、関連する Amazon Elastic Block Store (Amazon EBS) スナップショットを暗号化するために使用する AWS アカウント。
  • ターゲットアカウント 共有カスタム AMI を使用して暗号化された EC2 インスタンスを起動するために使用する AWS アカウント。

この記事の例では、ソースアカウントにアカウント ID 111111111111 を使用し、ターゲットアカウントにアカウント ID999999999999 を使用します。

カスタマーマネージド AWS KMS キー

カスタマーマネージドキーは、ユーザーが作成する AWS Key Management Service (AWS KMS) キーです。同じ AWS リージョンのソースアカウントに AWS KMS キーを作成します。

この記事の例では、us-east-1 リージョン内のソースアカウント ID 111111111111 で、エイリアス cmkSource を持つ AWS KMS キーを使用します。エイリアス cmkSource は AMI ID ami-1234578 を暗号化し、ターゲットアカウント ID 999999999999 と共有します。
注: 制限事項ベストプラクティスも必ず確認してください。

ソースアカウントの IAM ユーザーまたはロールポリシーを作成する

次の手順に従って、AWS Identity and Access Management (IAM) を使用してソースアカウントのユーザーまたはロールポリシーを作成します。次に、ターゲットアカウント ID を AWS KMS キーポリシーに追加します。

  1. 次のように、ソースアカウントの IAM ユーザーまたはロールポリシーを作成します。

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "ec2:ModifyImageAttribute"
          ],
          "Resource": [
            "arn:aws:ec2:us-east-1::image/12345678"
          ]
        }
      ]
    }
  2. AWS KMS コンソールを開きます

  3. ナビゲーションペインで [カスタマーマネージドキー] を選択し、次に AWS KMS キーを選択します。たとえば、cmkSource などです。

  4. [その他の AWS アカウント] で、[他の AWS アカウントを追加] を選択し、[他の AWS アカウントを追加] を選択します。

  5. arn:aws:iam:: フィールドに、ターゲットアカウントの ID を入力します。たとえば、999999999999 を入力します。

  6. [変更を保存] を選択します。

ターゲットアカウントの IAM ユーザーまたはロールポリシー設定を作成する

次のように、ターゲットアカウントの IAM ユーザーまたはロールポリシーを作成します。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "kms:DescribeKey",
        "kms:ReEncrypt*",
        "kms:Decrypt",
        "kms:GenerateDataKeyWithoutPlainText"
      ],
      "Resource": [
        "arn:aws:kms:us-east-1:111111111111:key/key-id of cmkSource"
      ]
    },
    {
      "Effect": "Allow",
      "Action": "kms:CreateGrant",
      "Resource": [
        "arn:aws:kms:us-east-1:111111111111:key/key-id of cmkSource"
      ],
      "Condition": {
        "Bool": {
          "kms:GrantIsForAWSResource": true
        }
      }
    }
  ]
}

このポリシーでは、ソースアカウントの AWS KMS キーを使用して、ターゲットアカウントから起動された新しいインスタンスを暗号化できます。

AMI をターゲットアカウントと共有する

AMI を共有するには、次の手順に従います。

注: 他の AWS リージョンの AMI を共有することはできません。AMI をコピーした後に、共有したり、新しいリージョンで起動したりすることができます。詳細については、「ある AWS リージョンで AMI を作成し、それを別の AWS リージョンにコピーする方法を教えてください」を参照してください。

共有されている暗号化 AMI からインスタンスを起動する

共有されている暗号化 AMI からインスタンスを起動するには、以下の手順に従います。

  1. EC2 コンソールを開きます。
  2. ナビゲーションペインで [EC2 ダッシュボード] を選択し、[インスタンスを起動] を選択します。
  3. [名前とタグ][名前] に、インスタンスの名前を入力します。
  4. [アプリケーションと OS イメージ (Amazon マシンイメージ)] で、[その他の AMI を参照] を選択し、共有されている暗号化 AMI を探します。[自分の AMI] を選択し、[自分と共有] を選択します。
  5. [インスタンスタイプ] で、インスタンスタイプを選択します。
  6. [キーペア (ログイン)][キーペア名] で、キーペアを選択します。または、新しく作成します。
  7. (オプション)[ネットワーク設定][編集] を選択し、[VPC][サブネット] を選択します。
  8. [ストレージの設定][詳細設定] を選択します。
  9. [EBS ボリューム][ボリューム] を展開します。
  10. [暗号化][暗号化] を選択します。
  11. [KMS キー][カスタム値を指定] を選択し、完全な ARN を入力します。たとえば、'arn:aws:kms:us-east-1:111111111111:key/key-id of cmkSource' と入力します。
    注: AWS KMS キーを選択しなかった場合、ターゲットアカウントの EBS 暗号化用のデフォルトの KMS キーが使用されます。
  12. [概要][インスタンスを起動] を選択します。

詳細については、「新規インスタンス起動ウィザードを使用してインスタンスを起動する」を参照してください。

注: 共有されている暗号化 AMI からインスタンスを起動する手順は、カスタム AMI を使用するインスタンスの場合と同じです。詳細については、「カスタム AMI から EC2 インスタンスを起動する方法を教えてください」を参照してください。

関連情報

Amazon マシンイメージ (AMI) を別の AWS アカウントとプライベートに共有する方法を教えてください。

インスタンス起動シナリオ

インスタンスを起動する

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ