¿Cómo puedo resolver el error «La nueva política de claves no le permitirá actualizarla en el futuro» cuando intento crear una clave de AWS KMS con AWS CloudFormation?

4 minutos de lectura
0

Cuando creo una clave de AWS KMS y defino una política de claves de AWS Key Management Service (AWS KMS) mediante AWS CloudFormation, se produce un error en la creación de la clave de AWS KMS. A continuación, aparece el siguiente mensaje de error: «La nueva política de claves no le permitirá actualizarla en el futuro».

Breve descripción

AWS KMS realiza comprobaciones de seguridad cuando se crea una política de claves. Una comprobación de seguridad confirma que la entidad principal de la política de claves tiene los permisos necesarios para crear CreateKey API y PutKeyPolicy API. Esta comprobación elimina la posibilidad de que la clave de AWS KMS se vuelva inadministrable, lo que significa que no puede cambiar la política de claves ni eliminar la clave.

Importante: Asegúrese de que la política de claves que cree permita al usuario actual administrar la clave de AWS KMS.

Resolución

Al crear una pila de AWS CloudFormation, se utiliza un usuario o rol de AWS Identity and Access Management (IAM) para realizar la llamada a la API CreateStack. Este usuario también se utiliza para crear los recursos especificados en la plantilla de AWS CloudFormation.

1.    Al crear una clave de AWS KMS con AWS CloudFormation, seleccione el mismo usuario o rol de IAM que sea la entidad principal del administrador de claves de la clave de AWS KMS.

En el siguiente ejemplo, el usuario de IAM arn:aws:iam::123456789012:user/Alice crea la pila de AWS CloudFormation. La entidad principal se designa como administrador de claves. El usuario de IAM «Alice» ahora puede modificar la política de claves una vez creada la política de claves.

"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.    Configure el administrador de claves de la entidad principal o configure el usuario raíz de la cuenta de AWS como administrador de claves de la entidad principal.

Para configurar el administrador de claves de la entidad principal, utilice el nombre de recurso de Amazon (ARN):

Si su pila de AWS CloudFormation se crea mediante una cuenta de usuario federado web o SAML, defina la entidad principal como rol que asume el usuario para el ARN. Por ejemplo:

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

Nota: El nombre del rol de IAM es FederatedAccess y el nombre del usuario federado es FederatedUsername.

Si se utiliza el rol de servicio de AWS CloudFormation para crear la pila, defina la entidad principal como el ARN del rol de servicio. Por ejemplo:

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

Nota: El nombre del rol de servicio de AWS CloudFormation es ServiceRoleName.

Para configurar al usuario raíz de la cuenta de AWS como administrador de claves de la entidad principal, consulte el siguiente ejemplo:

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

Nota: Si el administrador de claves de la entidad principal está configurado en el ARN raíz, asegúrese de tener los permisos correctos. El usuario de IAM, rol o rol de servicio que crea la pila de AWS CloudFormation debe tener los permisos de IAM para realizar las llamadas a las API CreateKey y PutKeyPolicy.


Información relacionada

Servicio de administración de claves de AWS

Autenticación y control de acceso para AWS KMS

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año