Uso de un token de concesión - AWS Key Management Service

Uso de un token de concesión

La API de AWS KMS sigue un modelo de coherencia final. Al crear una concesión, es posible que la concesión no sea efectiva inmediatamente. Es posible que haya un breve retraso antes de que el cambio esté disponible a través de AWS KMS. Por lo general, el cambio tarda menos de unos segundos en propagarse por todo el sistema, pero en algunos casos puede tardar varios minutos. Una vez que el cambio se haya propagado totalmente a través del sistema, la entidad principal beneficiaria puede utilizar los permisos de la concesión sin especificar el token de concesión ni ninguna prueba de la concesión. Sin embargo, si una concesión es tan nueva que aún no es conocida por todas las AWS KMS, la solicitud puede fallar con un error AccessDeniedException.

Para utilizar los permisos de una nueva concesión inmediatamente, utilice el token de concesión para la concesión. Guarde el token de concesión que regresa la operación CreateGrant. A continuación, envíe el token de concesión en la solicitud para la operación AWS KMS. Puede enviar un token de concesión a cualquier operación de concesión de AWS KMS y puede enviar varios tokens de concesión en la misma solicitud.

El siguiente ejemplo utiliza la operación CreateGrant para crear una concesión que permita las operaciones GenerateDataKey y Decrypt. Guarda el token de concesión que CreateGrant devuelve en la variable token. Luego, en una llamada a la operación GenerateDataKey, utiliza el token de concesión en la variable token.

# Create a grant; save the grant token $ token=$(aws kms create-grant \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --grantee-principal arn:aws:iam::111122223333:user/appUser \ --retiring-principal arn:aws:iam::111122223333:user/acctAdmin \ --operations GenerateDataKey Decrypt \ --query GrantToken \ --output text) # Use the grant token in a request $ aws kms generate-data-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ –-key-spec AES_256 \ --grant-tokens $token

Las entidades principales con permiso también pueden usar un token de concesión para retirar una nueva concesión incluso antes de que la concesión esté disponible en AWS KMS. (La operación RevokeGrant no acepta un token de concesión). Para obtener más información, consulte Retiro y revocación de concesiones.

# Retire the grant $ aws kms retire-grant --grant-token $token