スキップしてコンテンツを表示

異なるリージョンまたはアカウント間で AMI をコピーする際のエラーをトラブルシューティングする方法を教えてください。

所要時間2分
0

ある AWS リージョンまたは AWS アカウントから、別のリージョンまたはアカウントに Amazon マシンイメージ (AMI) をコピーしようとしたところ、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスでエラーが発生します。

解決策

リージョン間で AMI をコピーするには、スナップショットや AWS Key Management Service (AWS KMS) 暗号化キーなどの AMI とそのコンポーネント用のアクセス許可を設定します。

アクセス許可エラーのトラブルシューティング

IAM アクセス許可が欠けている

AWS Identity and Access Management (IAM) ユーザーまたはロールに、AMI のコピーに必要なアクセス許可がない場合、次のエラーが発生することがあります。

「You are not authorized to perform this operation」

この問題をトラブルシューティングするには、IAM エンティティに必要なアクセス許可があることを確認してください。

AMI ストレージにアクセスするためのアクセス許可が欠けている

共有 AMI をコピーする際、宛先アカウントが関連するスナップショットにアクセスできない場合、次のエラーが発生することがあります。

「You do not have permission to access the storage of this AMI」

この問題を解決するには、次の手順を実行します。

  1. ソース AMI を共有するには、[AMI アクセス許可の編集] を選択します。
  2. [アカウントのアクセス許可を作成するときに、'Create volume' アクセス許可を関連するスナップショットに追加する] を選択します。
  3. ソース AMI を宛先アカウントと共有します。
    注: AMI が共有済みの場合は、ソースアカウントから AMI を削除してから、Create volume アクセス許可を選択した状態で宛先に再共有します。

暗号化された AMI と AWS KMS のキーに関する問題のトラブルシューティング

暗号化された AMI では、宛先アカウントはコピープロセス中に復号化を行うために、ソース AWS KMS キーにアクセスする必要があります。宛先アカウントも同じキーを使用するか、宛先リージョン内に一致するキーを配置する必要があります。

暗号化された AMI に対するアクセス許可を設定するには、宛先アカウントに KMS キーへのアクセス許可を付与し、キーアクセス用の IAM ポリシーを作成します。

宛先アカウントにキーへのアクセス許可を付与する

暗号化された AMI を処理するには、ソースアカウントで次の手順を実行します。

  1. AWS KMS コンソールを開きます。
  2. ナビゲーションペインで [カスタマーマネージドキー] を選択します。
  3. AMI の暗号化に使用した KMS キーを選択します。
  4. [キーポリシー][デフォルト] ビュー[他の AWS アカウントを追加] を選択します。
  5. 宛先アカウントの ID を入力します。
  6. [変更を保存] を選択します。
  7. [ポリシー] ビュー[編集] を選択します。
  8. 次のアクセスポリシーを入力します。
            {
              "Sid": "Allow use of the key",
              "Effect": "Allow",
              "Principal": {"AWS": [
                "arn:aws:iam::[SOURCE_ACCOUNT_ID]:user/KeyUser",
                "arn:aws:iam::[TARGET_ACCOUNT_ID]:root"
              ]},
              "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
              ],
             "Resource": "*"
            },
            {
              "Sid": "Allow attachment of persistent resources",
              "Effect": "Allow",
              "Principal": {"AWS": [
                "arn:aws:iam::SOURCE_ACCOUNT_ID:user/KeyUser",
                "arn:aws:iam::DESTINATION_ACCOUNT_ID:root"  
              ]},
              "Action": [
                "kms:CreateGrant",
                "kms:ListGrants",
                "kms:RevokeGrant"
              ],
              "Resource": "*",
              "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}}
            }
    注: 実際のものでそれぞれ、SOURCE_ACCOUNT_ID をソースアカウント ID に、DESTINATION_ACCOUNT_ID を宛先アカウント ID に置き換えます。

IAM ポリシーを作成し、宛先アカウントがキーにアクセスできるようにする

宛先アカウントに IAM ポリシーを作成します。

ポリシーの例:

      {
          "Version": "2012-10-17",
          "Statement": [{
           "Sid": "AllowUseOfTheKey",
           "Effect": "Allow",
           "Action": ["kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey"],
           "Resource": ["KEY_ARN"]
      }, {
           "Sid": "AllowAttachmentOfPersistentResources",
           "Effect": "Allow",
           "Action": ["kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant"],
           "Resource": ["KEY_ARN"],
           "Condition": {
               "Bool": {
                   "kms:GrantIsForAWSResource": true
              }
           }
       }]
   }

注: KEY_ARN を AWS KMS キーの Amazon リソースネーム (ARN) に置き換えます。

次に、暗号化 AMI を操作する必要がある IAM ユーザーまたはロールにポリシーをアタッチします。

関連情報

共有 Amazon EBS スナップショットの暗号化に使用する KMS キーを共有する

コピーした AMI から EC2 インスタンスを起動できない理由を知りたいです

AWS公式更新しました 10ヶ月前
コメントはありません

関連するコンテンツ