Come faccio a risolvere l'errore "The new key policy will not allow you to update the key policy in the future" quando provo a creare una policy della chiave AWS KMS tramite AWS CloudFormation?

3 minuti di lettura
0

Quando creo una chiave AWS KMS e definisco una policy della chiave Servizio di gestione delle chiavi AWS (AWS KMS) tramite AWS CloudFormation, la creazione non va a buon fine e ricevo il seguente messaggio di errore: "The new key policy will not allow you to update the key policy in the future."

Breve descrizione

Quando viene creata una policy della chiave, AWS KMS esegue dei controlli di sicurezza. Un controllo di sicurezza conferma che il principale nella policy della chiave dispone delle autorizzazioni necessarie per effettuare le API CreateKey e API PutKeyPolicy. Questi controlli eliminano la possibilità che la chiave AWS KMS diventi ingestibile, ovvero che non sia possibile modificare la policy o eliminare la chiave.

Importante: assicurati che la policy della chiave che crei permetta all'utente attuale di gestire la chiave AWS KMS.

Risoluzione

Quando crei uno stack AWS CloudFormation, viene utilizzato un utente o un ruolo AWS Identity and Access Management (AWS IAM) per effettuare la chiamata API CreateStack. Questo utente viene anche utilizzato per creare risorse specificate nel modello AWS CloudFormation.

1.    Quando crei una chiave AWS KMS utilizzando AWS CloudFormation, scegli l'utente o ruolo IAM che è il principale designato come amministratore della chiave AWS KMS.

Nell'esempio seguente, lo stack AWS CloudFormation viene creato dall'utente IAM arn:aws:iam::123456789012:user/Alice. Il principale è designato come amministratore della chiave. Dopo che viene creata la policy della chiave, l'utente IAM "Alice" ha le autorizzazioni per modificarla.

"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": "*"
              }
          ]
      }
    }
  }

2.    Imposta l’amministratore della chiave principale o imposta l'utente root dell'account AWS come amministratore della chiave principale.

Per impostare il principale amministratore della chiave, utilizza il nome della risorsa Amazon (ARN):

Se lo stack AWS CloudFormation è creato da un account utente federato SAML o web, imposta il principale come ruolo assunto dell'utente per l'ARN. Ad esempio:

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

Nota: il nome del ruolo IAM è FederatedAccess e quello dell'utente federato è FederatedUsername.

Se per creare lo stack viene utilizzato il ruolo di servizio AWS CloudFormation, imposta il principale come ARN del ruolo di servizio. Ad esempio:

"Principal": { "AWS": "arn:aws:iam::123456789012:role/ServiceRoleName” }

Nota: il nome del ruolo di servizio AWS CloudFormation è ServiceRoleName.

Per impostare l'utente root dell'account AWS come amministratore della chiave principale, guarda l'esempio seguente:

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

Nota: se l'amministratore della chiave principale è impostato sull'ARN root, assicurati di disporre delle autorizzazioni corrette. L'utente IAM, il ruolo o il ruolo di servizio che crea lo stack AWS CloudFormation deve disporre delle autorizzazioni IAM per effettuare le chiamate API CreateKey e PutKeyPolicy.


Informazioni correlate

Servizio di gestione delle chiavi AWS (AWS KMS)

Autenticazione e controllo degli accessi per AWS KMS

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa