AWS CloudFormation を使用してカスタマーマスターキー (CMK) を作成し、AWS Key Management Service (AWS KMS) キーポリシーを定義しようとすると、「The new key policy will not allow you to update the key policy in the future (新しいキーポリシーは将来のキーポリシーの更新を許可していません)」というエラーメッセージが表示され、CMK の作成に失敗します。解決方法を教えてください。

キーポリシーが作成されると、AWS KMS は安全性の確認を行います。この確認では、CreateKey リクエストを行うプリンシパルが PutKeyPolicy API コールを行うことも許可されているかどうかも確認されます。これにより、CMK が管理不能になって変更や削除ができなくなる可能性を低減させることができます。

作成しようとしているキーポリシーが、現在のユーザーに CMK 管理を許可することを確認してください。「キー管理者による CMK 管理の許可」などを参照してください。

CloudFormation スタックを作成する場合、CreateStack API コールを行うために使用される IAM ユーザーまたはロールは、スタックでのリソースの作成にも使用されます。CMK を作成するときに、以下の例のようにこの同じ IAM ユーザーまたはロールを CMK 管理のプリンシパルとして指定します。以下の例では、CloudFormation スタックが IAM ユーザー「Alice」(アカウント「123456789012」) によって作成されます。

    "myKey" : {
      "Type" : "AWS::KMS::Key",
      "Properties" : {
          "Description" : "A sample key",
          "KeyPolicy" : {
              "Version": "2012-10-17",
              "Id": "key-default-1",
              "Statement": [
                  {
                      "Sid": "Allow administration of the key",
                      "Effect": "Allow",
                      "Principal": { "AWS": "arn:aws:iam::123456789012:user/Alice" },
                      "Action": [
                          "kms:Create*",
                          "kms:Describe*",
                          "kms:Enable*",
                          "kms:List*",
                          "kms:Put*",
                          "kms:Update*",
                          "kms:Revoke*",
                          "kms:Disable*",
                          "kms:Get*",
                          "kms:Delete*",
                          "kms:ScheduleKeyDeletion",
                          "kms:CancelKeyDeletion"
                      ],
                      "Resource": "*"
                  },
                  {
                      "Sid": "Allow use of the key",
                      "Effect": "Allow",
                      "Principal": { "AWS": "arn:aws:iam::123456789012:user/Bob" },
                      "Action": [
                          "kms:Encrypt",
                          "kms:Decrypt",
                          "kms:ReEncrypt",
                          "kms:GenerateDataKey*",
                          "kms:DescribeKey"
                      ], 
                      "Resource": "*"
                  }
              ]
          }
      }
  }

CloudFormation スタックがフェデレーティッドユーザーアカウントによって作成される場合、プリンシパルをフェデレーティッドユーザーの想定されるロール ARN として設定します。以下の例で、"FederatedAccess" はフェデレーションされたアクセス IAM ロールの名前、"FederatedUsername" はフェデレーティッドユーザーの名前です。

"Principal": { "AWS": "arn:aws:sts::123456789012:assumed-role/FederatedAccess/FederatedUsername" }

または、AWS アカウントルートユーザーをプリンシパルに指定できます。これにより、キーポリシー安全性ロックアウトチェックがパスされ、次の例のように KMS キーを作成できるようになります。

"Principal": { "AWS": "arn:aws:iam::123456789012:root" }

このページは役に立ちましたか? はい | いいえ

AWS サポートナレッジセンターに戻る

サポートが必要ですか?AWS サポートセンターをご覧ください。

公開日: 2016 年 8 月 19 日

更新: 2018 年 5 月 16 日