AWS KMS claves de condición - AWS Key Management Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

AWS KMS claves de condición

AWS KMS proporciona un conjunto de claves de condición que puede utilizar en políticas y IAM políticas clave. Estas claves de condición son específicas de AWS KMS. Por ejemplo, puede usar la clave de kms:EncryptionContext:context-key condición para requerir un contexto de cifrado concreto al controlar el acceso a una KMS clave de cifrado simétrica.

Condiciones para una solicitud de API operación

Muchas claves de AWS KMS condición controlan el acceso a una KMS clave en función del valor de un parámetro de la solicitud de una AWS KMS operación. Por ejemplo, puede usar la clave de KeySpec condición kms: en una IAM política para permitir el uso de la CreateKeyoperación solo cuando el valor del KeySpec parámetro de la CreateKey solicitud sea el mismoRSA_4096.

Este tipo de condición funciona incluso cuando el parámetro no aparece en la solicitud, como cuando se utiliza el valor predeterminado del parámetro. Por ejemplo, puede usar la clave de KeySpec condición kms: para permitir que los usuarios usen la CreateKey operación solo cuando el valor del KeySpec parámetro seaSYMMETRIC_DEFAULT, que es el valor predeterminado. Esta condición permite las solicitudes que tienen el parámetro KeySpec con el valor SYMMETRIC_DEFAULT y las solicitudes que no tienen el parámetro KeySpec.

Condiciones para KMS las claves utilizadas en API las operaciones

Algunas claves AWS KMS condicionales pueden controlar el acceso a las operaciones en función de una propiedad de la KMS clave que se utiliza en la operación. Por ejemplo, puede usar la KeyOrigin condición kms: para permitir que los directores GenerateDataKeyinvoquen una KMS clave solo cuando Origin la KMS clave lo seaAWS_KMS. Para averiguar si una clave de condición se puede utilizar de esta manera, consulte la descripción de la clave de condición.

La operación debe ser una operación de recurso KMS clave, es decir, una operación que esté autorizada para una KMS clave determinada. Para identificar las operaciones de recursos KMS clave, en la tabla de acciones y recursos, busque un valor de KMS key en la Resources columna de la operación. Si utiliza este tipo de clave de condición con una operación que no está autorizada para un recurso KMS clave concreto, por ejemplo ListKeys, el permiso no está en vigor porque la condición nunca se puede cumplir. La autorización de la ListKeys operación no implica ningún recurso KMS clave ni ninguna KeySpec propiedad.

Los siguientes temas describen cada clave de AWS KMS condición e incluyen ejemplos de declaraciones de política que demuestran la sintaxis de las políticas.

Uso de operadores de conjuntos con claves de condición

Cuando una condición de política compara dos conjuntos de valores, como el conjunto de etiquetas de una solicitud y el conjunto de etiquetas de una política, es necesario saber AWS cómo comparar los conjuntos. IAMdefine dos conjuntos de operadores ForAnyValue yForAllValues, para ello, Utilice operadores de conjunto solo con claves de condición de varios valores, que los requieren. No utilice operadores de conjunto con claves de condición de un solo valor. Como siempre, pruebe sus declaraciones de políticas minuciosamente antes de usarlas en entornos de producción.

Las claves de condición tienen un valor único o un valor múltiple. Para determinar si una clave de AWS KMS condición es de un solo valor o de varios valores, consulte la columna Tipo de valor en la descripción de la clave de condición.

  • Las claves de condiciones Single-valued (Valor único) tienen como máximo un valor en el contexto de autorización (la solicitud o el recurso). Por ejemplo, dado que cada API llamada solo puede originarse desde una Cuenta de AWS, kms: CallerAccount es una clave de condición de un solo valor. No utilice un operador de conjunto con una clave de condición de un solo valor.

  • Las claves de condición de múltiples valores tienen varios valores en el contexto de autorización (la solicitud o el recurso). Por ejemplo, dado que cada KMS clave puede tener varios alias, kms: ResourceAliases puede tener varios valores. Las claves de condición de varios valores requieren un operador de conjunto.

Tenga en cuenta que la diferencia entre las claves de condición de un solo valor y de varios valores depende del número de valores en el contexto de autorización, no del número de valores de la condición de política.

aviso

El uso de un operador de conjunto con una clave de condición de un solo valor puede crear una declaración de política excesivamente permisiva (o excesivamente restrictiva). Utilice operadores de conjunto solo con claves de condición de varios valores.

Si crea o actualiza una política que incluye un operador ForAllValues set con las claves de contexto o aws:RequestTag/tag-key condición kmsEncryptionContext::, AWS KMS devuelve el siguiente mensaje de error:

OverlyPermissiveCondition: Using the ForAllValues set operator with a single-valued condition key matches requests without the specified [encryption context or tag] or with an unspecified [encryption context or tag]. To fix, remove ForAllValues.

Para obtener información detallada sobre los operadores ForAnyValue y los operadores de ForAllValues conjuntos, consulte Uso de varias claves y valores en la Guía del IAMusuario. Para obtener información sobre el riesgo de utilizar el operador de ForAllValues conjunto con una condición de un solo valor, consulte Advertencia de seguridad: ForAllValues con clave de un solo valor en la Guía del IAM usuario.

km: BypassPolicyLockoutSafetyCheck

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:BypassPolicyLockoutSafetyCheck

Booleano

Valor único

CreateKey

PutKeyPolicy

Solo políticas de IAM

Políticas de claves y políticas de IAM

La clave de kms:BypassPolicyLockoutSafetyCheck condición controla el acceso a PutKeyPolicylas operaciones CreateKeyy en función del valor del BypassPolicyLockoutSafetyCheck parámetro de la solicitud.

El siguiente ejemplo de declaración de IAM política impide que los usuarios eludan la comprobación de seguridad del bloqueo de la política al negarles el permiso para crear KMS claves cuando el valor del BypassPolicyLockoutSafetyCheck parámetro de la solicitud es CreateKey true.

{ "Effect": "Deny", "Action": [ "kms:CreateKey", "kms:PutKeyPolicy" ], "Resource": "*", "Condition": { "Bool": { "kms:BypassPolicyLockoutSafetyCheck": true } } }

También puede usar la clave de kms:BypassPolicyLockoutSafetyCheck condición en una IAM política o política clave para controlar el acceso a la PutKeyPolicy operación. El siguiente ejemplo de declaración de política de una política clave evita que los usuarios pasen por alto la comprobación de seguridad de bloqueo de la política al cambiar la política de una KMS clave.

En lugar de utilizar una operación Deny explícita, esta declaración de la política utiliza Allow con el operador de condición Null para permitir únicamente el acceso cuando la solicitud no contiene el parámetro BypassPolicyLockoutSafetyCheck. Cuando no se utiliza el parámetro, el valor predeterminado es false. Esta declaración de la política es algo más débil y puede anularse en el caso improbable de que sea necesario eludirla.

{ "Effect": "Allow", "Action": "kms:PutKeyPolicy", "Resource": "*", "Condition": { "Null": { "kms:BypassPolicyLockoutSafetyCheck": true } } }

Véase también

km: CallerAccount

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:CallerAccount

Cadena

Valor único

KMSoperaciones de recursos clave

Operaciones de almacén de claves personalizadas

Políticas de claves y políticas de IAM

Puede utilizar esta clave de condición para permitir o denegar el acceso a todas las identidades (usuarios y roles) de una Cuenta de AWS. En las políticas de claves, se usa el elemento Principal para especificar las identidades a las que se aplica la declaración de política. La sintaxis del elemento Principal no proporciona una forma de especificar todas las identidades en una Cuenta de AWS. Sin embargo, puede lograr este efecto combinando esta clave de condición con un Principal elemento que especifique todas AWS las identidades.

Puede utilizarla para controlar el acceso a cualquier operación de recurso KMS clave, es decir, cualquier AWS KMS operación que utilice una KMS clave determinada. Para identificar las operaciones de recursos KMS clave, en la tabla de acciones y recursos, busque un valor de KMS key en la Resources columna de la operación. También es válido para operaciones que administran almacenes de claves personalizados.

Por ejemplo, la siguiente declaración de política de claves demuestra cómo utilizar la clave de condición kms:CallerAccount. Esta declaración de política se encuentra en la política clave Clave administrada de AWS de AmazonEBS. Combina un Principal elemento que especifica todas las AWS identidades con la clave de kms:CallerAccount condición para permitir el acceso efectivo a todas las identidades en Cuenta de AWS 111122223333. Contiene una clave de AWS KMS condición adicional (kms:ViaService) para limitar aún más los permisos al permitir solo las solicitudes que llegan a través de AmazonEBS. Para obtener más información, consulte kms: ViaService.

{ "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS", "Effect": "Allow", "Principal": {"AWS": "*"}, "Condition": { "StringEquals": { "kms:CallerAccount": "111122223333", "kms:ViaService": "ec2.us-west-2.amazonaws.com" } }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*" }

kms: CustomerMasterKeySpec (obsoleto)

La clave de condición kms:CustomerMasterKeySpec está obsoleta. En su lugar, utilice la clave de KeySpec condición kms:.

Las claves de condición kms:CustomerMasterKeySpec y kms:KeySpec funcionan de la misma forma. Solo los nombres difieren. Le recomendamos que utilice kms:KeySpec. Sin embargo, para evitar cambios irrelevantes, AWS KMS admite ambas claves de condición.

kms: CustomerMasterKeyUsage (obsoleto)

La clave de condición kms:CustomerMasterKeyUsage está obsoleta. En su lugar, utilice la clave de KeyUsage condición kms:.

Las claves de condición kms:CustomerMasterKeyUsage y kms:KeyUsage funcionan de la misma forma. Solo los nombres difieren. Le recomendamos que utilice kms:KeyUsage. Sin embargo, para evitar cambios irrelevantes, AWS KMS admite ambas claves de condición.

km: DataKeyPairSpec

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:DataKeyPairSpec

Cadena

Valor único

GenerateDataKeyPair

GenerateDataKeyPairWithoutPlaintext

Políticas de claves y políticas de IAM

Puede utilizar esta clave de condición para controlar el acceso a las GenerateDataKeyPairWithoutPlaintextoperaciones GenerateDataKeyPairy en función del valor del KeyPairSpec parámetro de la solicitud. Por ejemplo, puede permitir que un usuario genere solo determinados tipos de pares de claves de datos.

El siguiente ejemplo de declaración de política clave usa la clave de kms:DataKeyPairSpec condición para permitir que los usuarios usen la KMS clave para generar solo pares de claves de RSA datos.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": [ "kms:GenerateDataKeyPair", "kms:GenerateDataKeyPairWithoutPlaintext" ], "Resource": "*", "Condition": { "StringLike": { "kms:DataKeyPairSpec": "RSA*" } } }

Véase también

kms: EncryptionAlgorithm

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:EncryptionAlgorithm

Cadena

Valor único

Decrypt

Encrypt

GenerateDataKey

GenerateDataKeyPair

GenerateDataKeyPairWithoutPlaintext

GenerateDataKeyWithoutPlaintext

ReEncrypt

Políticas de claves y políticas de IAM

Puede utilizar la clave de condición kms:EncryptionAlgorithm para controlar el acceso a operaciones criptográficas en función del algoritmo de cifrado que se utiliza en la operación. Para las ReEncryptoperaciones de cifrado, descifrado y, por el contrario, controla el acceso en función del valor del EncryptionAlgorithmparámetro de la solicitud. Para operaciones que generan claves de datos y pares de claves de datos, controla el acceso basado en el algoritmo de cifrado que se utiliza para cifrar la clave de datos.

Esta clave de condición no afecta a las operaciones realizadas fuera de AWS KMS, como el cifrado con la clave pública en un KMS key pair asimétrico externo a. AWS KMS

EncryptionAlgorithm parámetro en una solicitud

Para permitir que los usuarios utilicen únicamente un algoritmo de cifrado concreto con una KMS clave, utilice una declaración de política con un Deny efecto y un operador de StringNotEquals condición. Por ejemplo, la siguiente declaración de política clave prohíbe a los directores que pueden asumir la ExampleRole función utilizar esta KMS clave en las operaciones criptográficas especificadasRSAES_OAEP_SHA_256, a menos que el algoritmo de cifrado de la solicitud sea un algoritmo de cifrado asimétrico utilizado con las claves. RSA KMS

A diferencia de una declaración de política que permite a un usuario utilizar un algoritmo de cifrado concreto, una declaración de política con un doble negativo como esta impide que otras políticas y concesiones de esta KMS clave permitan a esta función utilizar otros algoritmos de cifrado. Esta declaración de Deny política clave tiene prioridad sobre cualquier política clave o IAM política que tenga un Allow efecto, y tiene prioridad sobre todas las concesiones para esta KMS clave y sus principios.

{ "Sid": "Allow only one encryption algorithm with this asymmetric KMS key", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*" ], "Resource": "*", "Condition": { "StringNotEquals": { "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256" } } }

Algoritmo de cifrado utilizado para la operación

También puede utilizar la clave de condición kms:EncryptionAlgorithm para controlar el acceso a operaciones según el algoritmo de cifrado utilizado en la operación, incluso cuando el algoritmo no se especifica en la solicitud. Esto le permite requerir o prohibir el algoritmo SYMMETRIC_DEFAULT, que puede que no se especifique en una solicitud porque es el valor predeterminado.

Esta característica le permite usar la clave de condición kms:EncryptionAlgorithm para controlar el acceso a las operaciones que generan claves de datos y pares de claves de datos. Estas operaciones utilizan únicamente KMS claves de cifrado simétricas y el algoritmo. SYMMETRIC_DEFAULT

Por ejemplo, esta IAM política limita sus principios al cifrado simétrico. Denega el acceso a cualquier KMS clave de la cuenta de ejemplo para las operaciones criptográficas, a menos que el algoritmo de cifrado especificado en la solicitud o utilizado en la operación sea _. SYMMETRIC DEFAULT Incluye GenerateDataKey* GenerateDataKeyadiciones GenerateDataKeyWithoutPlaintext, GenerateDataKeyPair, y GenerateDataKeyPairWithoutPlaintexta los permisos. La condición no tiene ningún efecto en estas operaciones porque siempre utilizan un algoritmo de cifrado simétrico.

{ "Sid": "AllowOnlySymmetricAlgorithm", "Effect": "Deny", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/*", "Condition": { "StringNotEquals": { "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT" } } }

Véase también

kmsEncryptionContext: clave de contexto

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:EncryptionContext:context-key

Cadena

Valor único

CreateGrant

Encrypt

Decrypt

GenerateDataKey

GenerateDataKeyPair

GenerateDataKeyPairWithoutPlaintext

GenerateDataKeyWithoutPlaintext

ReEncrypt

RetireGrant

Políticas de claves y políticas de IAM

Puede utilizar la clave de kms:EncryptionContext:context-key condición para controlar el acceso a una KMSclave de cifrado simétrica en función del contexto de cifrado de una solicitud de operación criptográfica. Utilice esta clave de condición para evaluar la clave y el valor del par de contexto de cifrado. Para evaluar solo las claves del contexto de cifrado o para requerir un contexto de cifrado independientemente de las claves o los valores, utilice la clave de EncryptionContextKeys condición kms:.

nota

Los valores de las claves de condición deben ajustarse a las reglas de caracteres de las políticas y IAM políticas clave. Algunos caracteres válidos en un contexto de cifrado no son válidos en las políticas. Es posible que no pueda utilizar esta clave de condición para expresar todos los valores de contexto de cifrado válidos. Para obtener más información sobre las reglas del documento de política de claves, consulte Formato de la política de claves. Para obtener más información sobre las reglas de los documentos de IAM política, consulte los requisitos de IAM nombres en la Guía del IAM usuario.

No puede especificar un contexto de cifrado en una operación criptográfica con una clave asimétrica o una KMS HMAC KMS clave. Los algoritmos y MAC algoritmos asimétricos no admiten un contexto de cifrado.

Para usar la clave de condición kms:EncryptionContext: context-key, sustituya la context-key marcador de posición por la clave de contexto de cifrado. Sustituya el context-value marcador de posición por el valor del contexto de cifrado.

"kms:EncryptionContext:context-key": "context-value"

Por ejemplo, la siguiente clave de condición especifica un contexto de cifrado en el que la clave es AppName y el valor es ExampleApp (AppName = ExampleApp).

"kms:EncryptionContext:AppName": "ExampleApp"

Esta es una clave de condición de un solo valor. La clave de la clave de condición especifica una clave de contexto de cifrado determinada (context-key). Aunque puede incluir varios pares de contextos de cifrado en cada API solicitud, el par de contextos de cifrado con la clave de contexto especificada solo puede tener un valor. Por ejemplo, la clave de condición kms:EncryptionContext:Department solo se aplica a los pares de contexto de cifrado con una clave Department, y cualquier par de contexto de cifrado dado con la clave Department solo puede tener un valor.

No utilice un operador de conjunto con la clave de condición kms:EncryptionContext:context-key. Si crea una declaración de política con una acción Allow, la clave de condición kms:EncryptionContext:context-key y el operador de conjunto ForAllValues, la condición permite solicitudes sin contexto de cifrado y solicitudes con pares de contexto de cifrado que no se especifican en la condición de política.

aviso

No utilice un operador de conjunto ForAnyValue o ForAllValues con esta clave de condición de un solo valor. Estos operadores de conjunto pueden crear una condición de política que no requiera valores que pretenda requerir y permite valores que pretende prohibir.

Si crea o actualiza una política que incluye un operador ForAllValues set con la clave de contexto kms:EncryptionContext:, AWS KMS devuelve el siguiente mensaje de error:

OverlyPermissiveCondition:EncryptionContext: Using the ForAllValues set operator with a single-valued condition key matches requests without the specified encryption context or with an unspecified encryption context. To fix, remove ForAllValues.

Para requerir un par de contexto de cifrado concreto, utilice la clave de condición kms:EncryptionContext:context-key con el operador StringEquals.

El siguiente ejemplo de declaración de política clave permite a los directores que pueden asumir el rol usar la KMS clave en una GenerateDataKey solicitud solo cuando el contexto de cifrado de la solicitud incluye el par. AppName:ExampleApp Se permiten otros pares de contexto de cifrado.

El nombre de las claves distingue entre mayúsculas y minúsculas. La distinción de mayúsculas y minúsculas del valor se determina mediante el operador de condición, como StringEquals. Para obtener más detalles, consulte Uso de mayúsculas y minúsculas en las condiciones de contexto de cifrado.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:AppName": "ExampleApp" } } }

Para exigir un par de contextos de cifrado y prohibir todos los demás pares de contextos de cifrado, utilice kms:EncryptionContext: context-key y kms:EncryptionContextKeysen la declaración de política. En la siguiente declaración de política de claves se utiliza la condición kms:EncryptionContext:AppName para requerir el par de contexto de cifrado AppName=ExampleApp en la solicitud. También utiliza una clave de condición kms:EncryptionContextKeys con el operador de conjunto ForAllValues para permitir solo la clave de contexto de cifrado AppName.

El operador de conjunto ForAllValues limita las claves de contexto de cifrado en la solicitud a AppName. Si la condición kms:EncryptionContextKeys con el operador de conjunto ForAllValues se utilizó solo en una declaración de política, este operador de conjunto permitiría solicitudes sin contexto de cifrado. Sin embargo, si la solicitud no tenía contexto de cifrado, la condición kms:EncryptionContext:AppName fallaría. Para obtener más información sobre el operador de ForAllValues conjunto, consulte Uso de varias claves y valores en la Guía del IAM usuario.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/KeyUsers" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:AppName": "ExampleApp" }, "ForAllValues:StringEquals": { "kms:EncryptionContextKeys": [ "AppName" ] } } }

También puede utilizar esta clave de condición para denegar el acceso a una KMS clave para una operación concreta. El siguiente ejemplo de declaración de política clave utiliza un Deny efecto para prohibir que el principal utilice la KMS clave si el contexto de cifrado de la solicitud incluye un par de contextos de Stage=Restricted cifrado. Esta condición permite una solicitud con otros pares de contexto de cifrado, incluidos los pares de contexto de cifrado con la clave Stage y otros valores, como Stage=Test.

{ "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:Stage": "Restricted" } } }

Uso de varios pares de contexto de cifrado

Puede requerir o prohibir varios pares de contexto de cifrado. También puede requerir uno de varios pares de contexto de cifrado. Para obtener más información sobre la lógica utilizada para interpretar estas condiciones, consulte Creación de una condición con varias claves o valores en la Guía del IAM usuario.

nota

Las versiones anteriores de este tema mostraban declaraciones de política que utilizaban los operadores ForAnyValue y ForAllValues set con la clave de condición kmsEncryptionContext:: context-key. Usando un operador de conjunto con una clave de condición de un solo valor puede dar lugar a políticas que permiten solicitudes sin contexto de cifrado y pares de contexto de cifrado no especificados.

Por ejemplo, una condición de política con el efecto Allow, el operador de conjunto ForAllValues y la clave de condición "kms:EncryptionContext:Department": "IT" no limita el contexto de cifrado al par "Department=IT". Permite solicitudes sin contexto de cifrado y solicitudes con pares de contexto de cifrado no especificados, como Stage=Restricted.

Revise sus políticas y elimine el operador set de cualquier condición con kms:EncryptionContext: context-key. Los intentos de crear o actualizar una política con este formato fallan con una excepción OverlyPermissiveCondition. Para resolver el error, elimine el operador de conjunto.

Para requerir varios pares de contexto de cifrado, enumere los pares en la misma condición. En la siguiente declaración de política de claves de ejemplo se requieren dos pares de contexto de cifrado, Department=IT y Project=Alpha. Como las condiciones tienen claves diferentes (kms:EncryptionContext:Departmentykms:EncryptionContext:Project), están conectadas implícitamente por un operador. AND Otros pares de contexto de cifrado están permitidos, pero no son necesarios.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:Department": "IT", "kms:EncryptionContext:Project": "Alpha" } } }

Para requerir un par de contexto de cifrado U otro par, coloque cada clave de condición en una declaración de política independiente. En la siguiente política de claves de ejemplo se requiere Department=IT o Project=Alpha pares, o ambos. Otros pares de contexto de cifrado están permitidos, pero no son necesarios.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:Department": "IT" } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:Project": "Alpha" } } }

Para requerir pares de cifrado específicos y excluir todos los demás pares de contextos de cifrado, utilice kms:EncryptionContext: context-key y kms:EncryptionContextKeysen la declaración de política. La siguiente declaración de política clave utiliza la condición de clave contextual kmsEncryptionContext:: para requerir un contexto de cifrado con ambos pares y. Department=IT Project=Alpha Utiliza una clave de condición kms:EncryptionContextKeys con el operador de conjuntos ForAllValues para permitir solo las claves de contexto de cifrado Department y Project.

El operador de conjuntos ForAllValues limita las claves de contexto de cifrado en la solicitud a Department y Project. Si se usara solo en una condición, este operador de conjunto permitiría solicitudes sin contexto de cifrado, pero en esta configuración, la clave de contexto kms:EncryptionContext: en esta condición fallaría.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:Department": "IT", "kms:EncryptionContext:Project": "Alpha" }, "ForAllValues:StringEquals": { "kms:EncryptionContextKeys": [ "Department", "Project" ] } } }

También puede prohibir varios pares de contexto de cifrado. El siguiente ejemplo de declaración de política clave utiliza un Deny efecto para prohibir que el principal utilice KMS las claves si el contexto de cifrado de la solicitud incluye a o .pair. Stage=Restricted Stage=Production

Múltiples valores (Restricted y Production) para la misma clave (kms:EncryptionContext:Stage) están implícitamente conectados por un OR. Para obtener más información, consulte la Lógica de evaluación para condiciones con varias claves o valores en la Guía del IAMusuario.

{ "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:Stage": [ "Restricted", "Production" ] } } }

Uso de mayúsculas y minúsculas en las condiciones de contexto de cifrado

El contexto de cifrado que se especifica en una operación de descifrado debe coincidir exactamente, incluido el uso de mayúsculas y minúsculas, con el contexto de cifrado que se especifica en la operación de cifrado. Solo puede variar el orden de los pares de un contexto de cifrado con varios pares.

Sin embargo, en las condiciones de políticas, la clave de condición no distingue entre mayúsculas y minúsculas. La distinción de mayúsculas y minúsculas del valor de la condición se determina por el operador de condición de política que utilice, como StringEquals o StringEqualsIgnoreCase.

Como tal, la clave de condición, que consiste en el kms:EncryptionContext: prefijo y el clave de contexto reemplazo, no distingue entre mayúsculas y minúsculas. Una política que utiliza esta condición no comprueba el uso de mayúsculas o minúsculas de ninguno de los elementos de la clave de condición. La distinción entre mayúsculas y minúsculas del valor, es decir, el valor de contexto el reemplazo, lo determina el operador de la condición de la póliza.

Por ejemplo, la siguiente declaración de política permite la operación cuando el contexto de cifrado incluye una clave Appname, independientemente de si está en mayúsculas o minúsculas. La condición StringEquals requiere que ExampleApp esté en mayúsculas cuando se especifique.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:Appname": "ExampleApp" } } }

Para solicitar una clave de contexto de cifrado que distinga entre mayúsculas y minúsculas, utilice la condición kms: EncryptionContextKeys policy con un operador de condición que distinga entre mayúsculas y minúsculas, como. StringEquals En esta condición de política, como la clave de contexto de cifrado es el valor de la condición de política, el operador de condición determina si se distingue entre mayúsculas y minúsculas.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": "AppName" } } }

Para exigir una evaluación de la clave y el valor del contexto de cifrado que distinga entre mayúsculas y minúsculas, utilice las condiciones de política kms:EncryptionContextKeys y la clave de contexto kmsEncryptionContext:: juntas en la misma declaración de política. El operador de condición sensible a mayúsculas y minúsculas (como StringEquals) siempre se aplica al valor de la condición. La clave de contexto de cifrado (como AppName) es el valor de la condición kms:EncryptionContextKeys. El valor del contexto de cifrado (por ejemploExampleApp) es el valor de la condición de clave contextual kms:EncryptionContext:.

Por ejemplo, en la siguiente declaración de política de clave de ejemplo, como el operador StringEquals distingue entre mayúsculas y minúsculas, tanto la clave de contexto de cifrado como el valor de contexto de cifrado distinguen entre mayúsculas y minúsculas.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": "AppName" }, "StringEquals": { "kms:EncryptionContext:AppName": "ExampleApp" } } }

Uso de variables en una condición de contexto de cifrado

La clave y el valor de un par de contexto de cifrado deben ser cadenas literales simples. No pueden ser números enteros ni objetos, ni ningún tipo que no esté totalmente resuelto. Si utiliza un tipo diferente, como un entero o un flotante, lo AWS KMS interpreta como una cadena literal.

"encryptionContext": { "department": "10103.0" }

Sin embargo, el valor de la clave de kms:EncryptionContext:context-key condición puede ser una variable IAM de política. Estas variables de política se resuelven en tiempo de ejecución con arreglo a los valores de la solicitud. Por ejemplo, aws:CurrentTime se resuelve en la hora de la solicitud y aws:username se resuelve en el nombre descriptivo del autor de la llamada.

Puede utilizar estas variables de política para crear una declaración de política con una condición que requiera información muy específica de un contexto de cifrado, como el nombre de usuario del autor de la llamada. Como contiene una variable, puede utilizar la misma declaración de política con todos los usuarios que puedan adoptar ese rol. No tiene que escribir una declaración de política diferente para cada usuario.

Imagínese una situación en la que desee que todos los usuarios que puedan asumir un rol utilicen la misma KMS clave para cifrar y descifrar sus datos. Sin embargo, solo quiere que puedan descifrar los datos que ellos han cifrado. Comience por exigir que todas las solicitudes AWS KMS incluyan un contexto de cifrado en el que la clave esté user y el valor sea el nombre de AWS usuario de la persona que llama, como el siguiente.

"encryptionContext": { "user": "bob" }

A continuación, para forzar la aplicación de este requisito, puede utilizar una declaración de política como la del siguiente ejemplo. Esta declaración de política otorga al TestTeam rol permiso para cifrar y descifrar datos con la clave. KMS Sin embargo, el permiso solo es válido cuando el contexto de cifrado de la solicitud incluye un par "user": "<username>". Para representar el nombre de usuario, la condición utiliza la variable de política aws:username.

Cuando se evalúa la solicitud, la variable de condición se sustituye por el nombre de usuario del autor de la llamada. Por tanto, la condición necesita el contexto de cifrado "user": "bob" para "bob" y "user": "alice" para "alice".

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/TestTeam" }, "Action": [ "kms:Decrypt", "kms:Encrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:user": "${aws:username}" } } }

Puede usar una variable IAM de política solo en el valor de la clave de kms:EncryptionContext:context-key condición. No puede utilizar una variable en la clave.

También puede utilizar claves de contexto específicas del proveedor en las variables. Estas claves de contexto identifican de forma exclusiva a los usuarios que han iniciado sesión AWS mediante la federación de identidades web.

Al igual que todas las variables, estas solo se pueden utilizar en la condición de política kms:EncryptionContext:context-key, no en el contexto de cifrado real. Y solo se pueden utilizar en el valor de la condición, no en la clave.

Por ejemplo, la siguiente declaración de política de clave es similar a la anterior. Sin embargo, la condición requiere un contexto de cifrado en el que la clave sea sub y el valor identifique de forma inequívoca a un usuario que ha iniciado sesión en un grupo de usuarios de Amazon Cognito. Para obtener más información sobre la identificación de usuarios y roles en Amazon Cognito, consulte IAMRoles en la Guía para desarrolladores de Amazon Cognito.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/TestTeam" }, "Action": [ "kms:Decrypt", "kms:Encrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:sub": "${cognito-identity.amazonaws.com:sub}" } } }

Véase también

kms: EncryptionContextKeys

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:EncryptionContextKeys

Cadena (lista)

Multivalor

CreateGrant

Decrypt

Encrypt

GenerateDataKey

GenerateDataKeyPair

GenerateDataKeyPairWithoutPlaintext

GenerateDataKeyWithoutPlaintext

ReEncrypt

RetireGrant

Políticas de claves y políticas de IAM

Puede utilizar la clave de kms:EncryptionContextKeys condición para controlar el acceso a una KMSclave de cifrado simétrica en función del contexto de cifrado de una solicitud de operación criptográfica. Utilice esta clave de condición para evaluar únicamente la clave de cada par de contexto de cifrado. Utilice esta clave de condición kms:EncryptionContext:context-key para evaluar la clave y el valor del par de contexto de cifrado.

No puede especificar un contexto de cifrado en una operación criptográfica con una clave asimétrica o una KMS clave. HMAC KMS Los algoritmos y MAC algoritmos asimétricos no admiten un contexto de cifrado.

nota

Los valores de las claves de condición, incluida una clave de contexto de cifrado, deben ajustarse a las reglas de caracteres y codificación de las políticas de AWS KMS claves. Es posible que no pueda utilizar esta clave de condición para expresar todas las claves de contexto de cifrado válidas. Para obtener más información sobre las reglas del documento de política de claves, consulte Formato de la política de claves. Para obtener más información sobre las reglas de los documentos de IAM políticas, consulte los requisitos de IAM nombres en la Guía del IAM usuario.

Esta es una clave de condición multivalor. Puede especificar varios pares de contextos de cifrado en cada API solicitud. kms:EncryptionContextKeyscompara las claves de contexto de cifrado de la solicitud con el conjunto de claves de contexto de cifrado de la política. Para determinar cómo se comparan estos conjuntos, debe proporcionar un operador de conjuntos ForAnyValue o ForAllValues en la condición de política. Para obtener más información sobre los operadores establecidos, consulte Uso de varias claves y valores en la Guía del IAM usuario.

  • ForAnyValue: al menos una clave de contexto de cifrado en la solicitud debe coincidir con una clave de contexto de cifrado en la condición de política. Se permiten otras claves de contexto de cifrado. Si la solicitud no tiene contexto de cifrado, la condición no se cumple.

  • ForAllValues: cada clave de contexto de cifrado de la solicitud debe coincidir con una clave de contexto de cifrado en la condición de política. Este operador de conjunto limita las claves de contexto de cifrado a aquellas en la condición de política. No requiere ninguna clave de contexto de cifrado, pero prohíbe las claves de contexto de cifrado no especificadas.

En la siguiente declaración de política de claves de ejemplo se utiliza la condición kms:EncryptionContextKeys con la clave de condición del operador de conjuntos ForAnyValue. Esta declaración de política permite el uso de una KMS clave para las operaciones especificadas, pero solo cuando al menos uno de los pares de contextos de cifrado de la solicitud incluye la AppName clave, independientemente de su valor.

Por ejemplo, esta declaración de política de claves permite una solicitud GenerateDataKey con dos pares de contexto de cifrado, AppName=Helper y Project=Alpha, porque el primer par de contexto de cifrado cumple con la condición. Una solicitud con solo Project=Alpha o sin contexto de cifrado fallaría.

Como la operación de StringEqualscondición distingue entre mayúsculas y minúsculas, esta declaración de política requiere que la clave de contexto de cifrado esté escrita y escrita en mayúsculas y minúsculas. Sin embargo, puede utilizar un operador de condición que omita el uso de mayúsculas y minúsculas de la clave, como StringEqualsIgnoreCase.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": [ "kms:Encrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": "AppName" } } }

También puede usar la kms:EncryptionContextKeys clave condicional para requerir un contexto de cifrado (cualquier contexto de cifrado) en las operaciones criptográficas que utilizan la KMS clave;.

El siguiente ejemplo de declaración de política clave utiliza la clave de kms:EncryptionContextKeys condición con el operador de condición nula para permitir el acceso a una KMS clave solo cuando el contexto de cifrado de la API solicitud no es nulo. Esta condición no comprueba las claves ni los valores del contexto de cifrado. Solo verifica que existe el contexto de cifrado.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": [ "kms:Encrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "Null": { "kms:EncryptionContextKeys": false } } }

Véase también

kms: ExpirationModel

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:ExpirationModel

Cadena

Valor único

ImportKeyMaterial

Políticas de claves y políticas de IAM

La clave de kms:ExpirationModel condición controla el acceso a la ImportKeyMaterialoperación en función del valor del ExpirationModelparámetro de la solicitud.

ExpirationModel es un parámetro opcional que determina si el material de claves importado vence. Los valores válidos son KEY_MATERIAL_EXPIRES y KEY_MATERIAL_DOES_NOT_EXPIRE. El valor predeterminado es KEY_MATERIAL_EXPIRES.

La fecha y la hora de caducidad vienen determinadas por el valor del ValidToparámetro. El parámetro ValidTo es necesario a menos que el valor del parámetro ExpirationModel sea KEY_MATERIAL_DOES_NOT_EXPIRE. También puede usar la clave de ValidTo condición kms: para exigir una fecha de caducidad determinada como condición de acceso.

El siguiente ejemplo de declaración de política utiliza la clave de kms:ExpirationModel condición para permitir a los usuarios importar material KMS clave a una clave solo cuando la solicitud incluye el ExpirationModel parámetro y su valor esKEY_MATERIAL_DOES_NOT_EXPIRE.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:ImportKeyMaterial", "Resource": "*", "Condition": { "StringEquals": { "kms:ExpirationModel": "KEY_MATERIAL_DOES_NOT_EXPIRE" } } }

También puede utilizar la clave de condición kms:ExpirationModel para que un usuario solamente pueda importar material de claves cuando expire el material de claves. En el ejemplo siguiente, la declaración de la política de clave utiliza la clave de condición kms:ExpirationModel con el operador de condición Null para que un usuario solamente pueda importar material de claves cuando la solicitud no contenga un parámetro ExpirationModel. El valor predeterminado ExpirationModel esKEY_MATERIAL_EXPIRES.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:ImportKeyMaterial", "Resource": "*", "Condition": { "Null": { "kms:ExpirationModel": true } } }

Véase también

kms: GrantConstraintType

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:GrantConstraintType

Cadena

Valor único

CreateGrant

RetireGrant

Políticas de claves y políticas de IAM

Puede utilizar esta clave de condición para controlar el acceso a la CreateGrantoperación en función del tipo de restricción de concesión de la solicitud.

Al crear una concesión, también puede especificar una restricción de concesión para permitir las operaciones que permite la concesión solo cuando esté presente un determinado contexto de cifrado. La restricción de concesión puede ser uno de estos dos tipos: EncryptionContextEquals o EncryptionContextSubset. Puede usar esta clave de condición para comprobar que la solicitud contiene un tipo u otro.

importante

No incluya información confidencial en este campo. Este campo puede mostrarse en texto plano en CloudTrail los registros y otros resultados.

En la siguiente declaración de política de clave utiliza la clave de condición kms:GrantConstraintType para permitir que un usuario cree concesiones solo cuando la solicitud incluya una restricción de concesión EncryptionContextEquals. En el ejemplo se muestra una declaración de política en una política de claves.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:GrantConstraintType": "EncryptionContextEquals" } } }

Véase también

km: GrantIsFor AWSResource

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:GrantIsForAWSResource

Booleano

Valor único

CreateGrant

ListGrants

RevokeGrant

Políticas de claves y políticas de IAM

Permite o deniega el permiso para RevokeGrantlas operaciones CreateGrantListGrants, o solo cuando un AWS servicio integrado AWS KMS llama a la operación en nombre del usuario. Esta condición de política no permite al usuario realizar estas operaciones de concesión directamente.

La siguiente declaración de política de ejemplo utiliza la clave de condición kms:GrantIsForAWSResource. Permite a AWS los servicios integrados AWS KMS, como AmazonEBS, crear subvenciones en esta KMS clave en nombre del principal especificado.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } } }

Véase también

km: GrantOperations

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:GrantOperations

Cadena

Multivalor

CreateGrant

Políticas de claves y políticas de IAM

Puede utilizar esta clave de condición para controlar el acceso a la CreateGrantoperación en función de las operaciones de concesión de la solicitud. Por ejemplo, puede permitir que los usuarios creen concesiones que deleguen el permiso para cifrar pero no para descifrar. Para obtener más información acerca de concesiones, consulte Uso de concesiones.

Esta es una clave de condición de varios valores. kms:GrantOperations compara el conjunto de operaciones de concesión en la solicitud CreateGrant al conjunto de operaciones de concesión de la política. Para determinar cómo se comparan estos conjuntos, debe proporcionar un operador de conjuntos ForAnyValue o ForAllValues en la condición de política. Para obtener más información sobre los operadores de conjuntos, consulte Uso de varias claves y valores en la Guía del IAM usuario.

  • ForAnyValue: al menos una operación de concesión en la solicitud debe coincidir con una de las operaciones de concesión en la condición de política. Se permiten otras operaciones de concesión.

  • ForAllValues: Cada operación de subvención incluida en la solicitud debe coincidir con una operación de subvención incluida en la condición de la política. Este operador de conjuntos limita las operaciones de concesión a las especificadas en la condición de política. No requiere ninguna operación de concesión, pero prohíbe operaciones de concesión no especificadas.

    ForAllValues también devuelve el valor true cuando no hay operaciones de subvención en la solicitud, pero CreateGrant no las permite. Si el parámetro Operations falta o tiene un valor nulo, la solicitud CreateGrant falla.

La siguiente declaración de política de clave de ejemplo utiliza la clave de condición kms:GrantOperations para crear concesiones solo cuando las operaciones de concesión sean Encrypt, ReEncryptTo o ambas. Si la concesión incluye cualquier otra operación, la solicitud CreateGrant falla.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Encrypt", "ReEncryptTo" ] } } }

Si cambia el operador de conjuntos en la condición de política a ForAnyValue, la declaración de política requerirá que al menos una de las operaciones de concesión sea Encrypt o ReEncryptTo, pero permitirá otras operaciones de concesión, como Decrypt o ReEncryptFrom.

Véase también

km: GranteePrincipal

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:GranteePrincipal

Cadena

Valor único

CreateGrant

IAM y políticas de claves

Puede utilizar esta clave de condición para controlar el acceso a la CreateGrantoperación en función del valor del GranteePrincipalparámetro de la solicitud. Por ejemplo, puede crear concesiones para usar una KMS clave solo cuando el principal beneficiario de la CreateGrant solicitud coincida con el principal especificado en la declaración de condición.

Para especificar el principal beneficiario, utilice el nombre de recurso de Amazon (ARN) de un AWS principal. Entre los principales válidos se incluyen los IAM usuarios Cuentas de AWS, los IAM roles, los usuarios federados y los usuarios con roles asumidos. Para obtener ayuda con la ARN sintaxis de un director, consulte la IAMARNsGuía del IAMusuario.

El siguiente ejemplo de declaración de política clave utiliza la clave de kms:GranteePrincipal condición para crear subvenciones para una KMS clave solo cuando el beneficiario principal de la subvención es el. LimitedAdminRole

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:GranteePrincipal": "arn:aws:iam::111122223333:role/LimitedAdminRole" } } }

Véase también

km: KeyAgreementAlgorithm

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:KeyAgreementAlgorithm

Cadena

Valor único

DeriveSharedSecret

Políticas de claves y políticas de IAM

Puede utilizar la clave de kms:KeyAgreementAlgorithm condición para controlar el acceso a la DeriveSharedSecretoperación en función del valor del KeyAgreementAlgorithm parámetro de la solicitud. El único valor válido para KeyAgreementAlgorithm esECDH.

Por ejemplo, la siguiente declaración de política clave utiliza la clave de kms:KeyAgreementAlgorithm condición para denegar todo acceso a DeriveSharedSecret menos que KeyAgreementAlgorithm seaECDH.

{ "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:DeriveSharedSecret", "Resource": "*", "Condition": { "StringNotEquals": { "kms:KeyAgreementAlgorithm": "ECDH" } } }

Véase también

km: KeyOrigin

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:KeyOrigin

Cadena

Valor único

CreateKey

KMSoperaciones de recursos clave

IAMpolíticas

Políticas de claves y políticas de IAM

La clave de kms:KeyOrigin condición controla el acceso a las operaciones en función del valor de la Origin propiedad de la KMS clave creada o utilizada en la operación. Funciona como una condición de recurso o una condición de solicitud.

Puede usar esta clave de condición para controlar el acceso a la CreateKeyoperación en función del valor del parámetro Origin de la solicitud. Los valores válidos para Origin son AWS_KMS, AWS_CLOUDHSM y EXTERNAL.

Por ejemplo, puede crear una KMS clave solo cuando el material clave se genere en AWS KMS (AWS_KMS), solo cuando el material clave se genere en un AWS CloudHSM clúster asociado a un almacén de claves personalizado (AWS_CLOUDHSM) o solo cuando el material clave se importe de una fuente externa (EXTERNAL).

El siguiente ejemplo de declaración de política clave utiliza la clave de kms:KeyOrigin condición para crear una KMS clave solo cuando AWS KMS crea el material clave.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:CreateKey", "Resource": "*", "Condition": { "StringEquals": { "kms:KeyOrigin": "AWS_KMS" } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext", "kms:GenerateDataKeyPair", "kms:GenerateDataKeyPairWithoutPlaintext", "kms:ReEncrypt*" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/*", "Condition": { "StringEquals": { "kms:KeyOrigin": "AWS_CLOUDHSM" } } } ] }

También puede utilizar la clave kms:KeyOrigin condicionada para controlar el acceso a las operaciones que utilizan o administran una KMS clave en función de la Origin propiedad de la KMS clave utilizada para la operación. La operación debe ser una operación de recursos KMS clave, es decir, una operación que esté autorizada para una KMS clave determinada. Para identificar las operaciones de recursos KMS clave, en la tabla de acciones y recursos, busque un valor de KMS key en la Resources columna de la operación.

Por ejemplo, la siguiente IAM política permite a los directores realizar las operaciones de recursos KMS clave especificadas, pero solo con KMS las claves de la cuenta que se crearon en un almacén de claves personalizado.

{ "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext", "kms:GenerateDataKeyPair", "kms:GenerateDataKeyPairWithoutPlaintext", "kms:ReEncrypt*" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/*", "Condition": { "StringEquals": { "kms:KeyOrigin": "AWS_CLOUDHSM" } } }

Véase también

kms: KeySpec

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:KeySpec

Cadena

Valor único

CreateKey

KMSoperaciones de recursos clave

IAMpolíticas

Políticas de claves y políticas de IAM

La clave de kms:KeySpec condición controla el acceso a las operaciones en función del valor de la KeySpec propiedad de la KMS clave creada o utilizada en la operación.

Puede utilizar esta clave de condición en una IAM política para controlar el acceso a la CreateKeyoperación en función del valor del KeySpecparámetro de una CreateKey solicitud. Por ejemplo, puede usar esta condición para permitir a los usuarios crear solo KMS claves de cifrado simétricas o solo HMAC KMS claves.

El siguiente ejemplo IAM de declaración de política utiliza la clave de kms:KeySpec condición para permitir que los principales creen solo claves RSA asimétricasKMS. El permiso solo es válido cuando el KeySpec en la solicitud comienza con RSA_.

{ "Effect": "Allow", "Action": "kms:CreateKey", "Resource": "*", "Condition": { "StringLike": { "kms:KeySpec": "RSA_*" } } }

También puede usar la clave de kms:KeySpec condición para controlar el acceso a las operaciones que utilizan o administran una KMS clave en función de la KeySpec propiedad de la KMS clave utilizada para la operación. La operación debe ser una operación de recursos KMS clave, es decir, una operación que esté autorizada para una KMS clave determinada. Para identificar las operaciones de recursos KMS clave, en la tabla de acciones y recursos, busque un valor de KMS key en la Resources columna de la operación.

Por ejemplo, la siguiente IAM política permite a los directores realizar las operaciones de recursos KMS clave especificadas, pero solo con KMS claves de cifrado simétricas en la cuenta.

{ "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/*", "Condition": { "StringEquals": { "kms:KeySpec": "SYMMETRIC_DEFAULT" } } }

Véase también

kms: KeyUsage

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:KeyUsage

Cadena

Valor único

CreateKey

KMSoperaciones de recursos clave

IAMpolíticas

Políticas de claves y políticas de IAM

La clave de kms:KeyUsage condición controla el acceso a las operaciones en función del valor de la KeyUsage propiedad de la KMS clave creada o utilizada en la operación.

Puede usar esta clave de condición para controlar el acceso a la CreateKeyoperación en función del valor del KeyUsageparámetro de la solicitud. Los valores válidos KeyUsage son ENCRYPT_DECRYPTSIGN_VERIFY,GENERATE_VERIFY_MAC, yKEY_AGREEMENT.

Por ejemplo, puede crear una KMS clave solo cuando KeyUsage es ENCRYPT_DECRYPT o denegar el permiso de un usuario cuando KeyUsage esSIGN_VERIFY.

El siguiente ejemplo IAM de declaración de política utiliza la clave de kms:KeyUsage condición para crear una KMS clave solo cuando KeyUsage esENCRYPT_DECRYPT.

{ "Effect": "Allow", "Action": "kms:CreateKey", "Resource": "*", "Condition": { "StringEquals": { "kms:KeyUsage": "ENCRYPT_DECRYPT" } } }

También puede utilizar la clave kms:KeyUsage condicionada para controlar el acceso a las operaciones que utilizan o administran una KMS clave en función de la KeyUsage propiedad de la KMS clave de la operación. La operación debe ser una operación de recursos KMS clave, es decir, una operación que esté autorizada para una KMS clave determinada. Para identificar las operaciones de recursos KMS clave, en la tabla de acciones y recursos, busque un valor de KMS key en la Resources columna de la operación.

Por ejemplo, la siguiente IAM política permite a los directores realizar las operaciones de recursos KMS clave especificadas, pero solo con KMS las claves de la cuenta que se utilizan para la firma y la verificación.

{ "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:DescribeKey", "kms:GetPublicKey", "kms:ScheduleKeyDeletion" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/*", "Condition": { "StringEquals": { "kms:KeyUsage": "SIGN_VERIFY" } } }

Véase también

kms: MacAlgorithm

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:MacAlgorithm

Cadena

Valor único

GenerateMac

VerifyMac

Políticas de claves y políticas de IAM

Puede utilizar la clave de kms:MacAlgorithm condición para controlar el acceso a las VerifyMacoperaciones GenerateMacy en función del valor del MacAlgorithm parámetro de la solicitud.

El siguiente ejemplo de política de claves permite a los usuarios que pueden asumir el testers rol usar la HMAC KMS clave para generar y verificar HMAC etiquetas solo cuando el MAC algoritmo de la solicitud es HMAC_SHA_384 oHMAC_SHA_512. Esta política utiliza dos declaraciones de políticas independientes, cada una con su propia condición. Si especificas más de un MAC algoritmo en una sola declaración de condición, la condición requiere ambos algoritmos, en lugar de uno u otro.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/testers" }, "Action": [ "kms:GenerateMac", "kms:VerifyMac" ], "Resource": "*", "Condition": { "StringEquals": { "kms:MacAlgorithm": "HMAC_SHA_384" } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/testers" }, "Action": [ "kms:GenerateMac", "kms:VerifyMac" ], "Resource": "*", "Condition": { "StringEquals": { "kms:MacAlgorithm": "HMAC_SHA_512" } } } ] }

Véase también

kms: MessageType

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:MessageType

Cadena

Valor único

Sign

Verify

Políticas de claves y políticas de IAM

La clave de condición kms:MessageType controla el acceso a las operaciones Sign y Verify en función del valor del parámetro MessageType de la solicitud. Los valores válidos para MessageType son RAW y DIGEST.

Por ejemplo, la siguiente declaración de política clave usa la clave de kms:MessageType condición para usar una KMS clave asimétrica para firmar un mensaje, pero no un resumen del mensaje.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:Sign", "Resource": "*", "Condition": { "StringEquals": { "kms:MessageType": "RAW" } } }

Véase también

kms: MultiRegion

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:MultiRegion

Booleano

Valor único

CreateKey

KMSoperaciones de recursos clave

Políticas de claves y políticas de IAM

Puede utilizar esta clave de condición para permitir operaciones solo en claves de una región o solo en claves de varias regiones. La clave de kms:MultiRegion condición controla el acceso a las AWS KMS operaciones con KMS las claves y a la CreateKeyoperación en función del valor de la MultiRegion propiedad de la KMS clave. Los valores válidos son true (de varias regiones) y false (de una sola región). Todas KMS las claves tienen una MultiRegion propiedad.

Por ejemplo, la siguiente declaración IAM de política utiliza la clave de kms:MultiRegion condición para permitir que los directores creen solo claves de una sola región.

{ "Effect": "Allow", "Action": "kms:CreateKey", "Resource": "*", "Condition": { "Bool": { "kms:MultiRegion": false } } }

kms: MultiRegionKeyType

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:MultiRegionKeyType

Cadena

Valor único

CreateKey

KMSoperaciones de recursos clave

Políticas de claves y políticas de IAM

Puede utilizar esta clave de condición para permitir operaciones solo en claves principales de varias regiones o solo en claves de réplicas de varias regiones. La clave de kms:MultiRegionKeyType condición controla el acceso a AWS KMS las operaciones en KMS las claves y la CreateKeyoperación en función de la MultiRegionKeyType propiedad de la KMS clave. Los valores válidos son PRIMARY y REPLICA. Solo las claves de varias regiones tienen una propiedad MultiRegionKeyType.

Normalmente, se utiliza la clave de kms:MultiRegionKeyType condición en una IAM política para controlar el acceso a varias KMS claves. Sin embargo, dado que una clave de varias regiones puede cambiar a principal o réplica, es posible que desee utilizar esta condición en una política de clave para permitir una operación solo cuando la clave de varias regiones concreta sea una clave principal o de réplica.

Por ejemplo, la siguiente declaración de IAM política utiliza la clave de kms:MultiRegionKeyType condición para permitir que los directores programen y cancelen la eliminación de claves únicamente en las réplicas de claves multirregionales especificadas. Cuenta de AWS

{ "Effect": "Allow", "Action": [ "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource": "arn:aws:kms:*:111122223333:key/*", "Condition": { "StringEquals": { "kms:MultiRegionKeyType": "REPLICA" } } }

Para permitir o denegar el acceso a todas las claves de varias regiones, puede usar ambos valores o un valor nulo con kms:MultiRegionKeyType. Sin embargo, se recomienda utilizar la clave de MultiRegion condición kms: para ello.

kms: PrimaryRegion

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:PrimaryRegion

Cadena (lista)

Valor único

UpdatePrimaryRegion

Políticas de claves y políticas de IAM

Puede utilizar esta clave de condición para limitar las regiones de destino de una UpdatePrimaryRegionoperación. Estas son las Regiones de AWS que pueden alojar las claves principales de varias regiones.

La clave de kms:PrimaryRegion condición controla el acceso a la UpdatePrimaryRegionoperación en función del valor del PrimaryRegion parámetro. El PrimaryRegion parámetro especifica la clave Región de AWS de réplica multirregional que se va a convertir en principal. El valor de la condición es uno o más Región de AWS nombres, como us-east-1 oap-southeast-2, o patrones de nombres de regiones, como eu-*

Por ejemplo, la siguiente declaración de política utiliza la clave de condición kms:PrimaryRegion para permitir que las entidades principales actualicen la región principal de una clave de varias regiones a una de las cuatro regiones especificadas.

{ "Effect": "Allow", "Action": "kms:UpdatePrimaryRegion", "Principal": { "AWS": "arn:aws:iam::111122223333:role/Developer" }, "Resource": "*", "Condition": { "StringEquals": { "kms:PrimaryRegion": [ "us-east-1", "us-west-2", "eu-west-3", "ap-southeast-2" ] } } }

km: ReEncryptOnSameKey

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:ReEncryptOnSameKey

Booleano

Valor único

ReEncrypt

Políticas de claves y políticas de IAM

Puede usar esta clave de condición para controlar el acceso a la ReEncryptoperación en función de si la solicitud especifica una KMS clave de destino que sea la misma que se utilizó para el cifrado original.

Por ejemplo, la siguiente declaración de política clave utiliza la clave de kms:ReEncryptOnSameKey condición para volver a cifrar solo cuando la KMS clave de destino es la misma que se utilizó para el cifrado original.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:ReEncrypt*", "Resource": "*", "Condition": { "Bool": { "kms:ReEncryptOnSameKey": true } } }

kms: RequestAlias

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:RequestAlias

Cadena (lista)

Valor único

Operaciones criptográficas

DescribeKey

GetPublicKey

Políticas de claves y políticas de IAM

Puede utilizar esta clave de condición para permitir una operación solo cuando la solicitud utilice un alias concreto para identificar la KMS clave. La clave de kms:RequestAlias condición controla el acceso a una KMS clave utilizada en una operación criptográfica o en DescribeKey función del alias que identifica esa KMS clave en la solicitud. GetPublicKey (Esta condición de política no afecta a la GenerateRandomoperación porque la operación no utiliza una KMS clave o un alias).

Esta condición admite el control de acceso basado en atributos (ABAC) in AWS KMS, que permite controlar el acceso a KMS las claves en función de las etiquetas y los alias de una clave. KMS Puede usar etiquetas y alias para permitir o denegar el acceso a una KMS clave sin cambiar las políticas ni las concesiones. Para obtener más detalles, consulte ABAC para AWS KMS.

Para especificar el alias en esta condición de política, utilice un nombre del alias, como, por ejemplo, alias/project-alpha, o un patrón de nombre de alias, como alias/*test*. No puede especificar un alias ARN en el valor de esta clave de condición.

Para cumplir esta condición, el valor del KeyId parámetro de la solicitud debe ser un nombre o alias coincidentesARN. Si la solicitud usa un identificador de clave diferente, no cumple la condición, incluso si identifica la misma KMS clave.

Por ejemplo, la siguiente declaración de política clave permite al director llamar a la GenerateDataKeyoperación de la KMS clave. Sin embargo, esto solo está permitido cuando el valor del KeyId parámetro de la solicitud es alias/finance-key o un alias ARN con ese nombre de alias, comoarn:aws:kms:us-west-2:111122223333:alias/finance-key.

{ "Sid": "Key policy using a request alias condition", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/developer" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:RequestAlias": "alias/finance-key" } } }

No puede usar esta clave de condición para controlar el acceso a las operaciones de alias, como CreateAliaso DeleteAlias. Para obtener más información sobre cómo controlar el acceso a operaciones de alias, consulte Control del acceso a alias.

km: ResourceAliases

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:ResourceAliases

Cadena (lista)

Multivalor KMSoperaciones de recursos clave

Solo políticas de IAM

Utilice esta clave de condición para controlar el acceso a una KMS clave en función de los alias asociados a la KMS clave. La operación debe ser una operación de recurso KMS clave, es decir, una operación que esté autorizada para una KMS clave determinada. Para identificar las operaciones de recursos KMS clave, en la tabla de acciones y recursos, busque un valor de KMS key en la Resources columna de la operación.

Esta condición admite el control de acceso basado en atributos (ABAC) en. AWS KMS ConABAC, puede controlar el acceso a KMS las claves en función de las etiquetas asignadas a una KMS clave y los alias asociados a una clave. KMS Puede usar etiquetas y alias para permitir o denegar el acceso a una KMS clave sin cambiar las políticas ni las concesiones. Para obtener más detalles, consulte ABAC para AWS KMS.

El alias debe ser único en una región Cuenta de AWS y, pero esta condición te permite controlar el acceso a varias KMS claves de la misma región (mediante el operador Regiones de AWS de StringLike comparación) o a varias KMS claves en distintas cuentas.

nota

La ResourceAliases condición kms: solo entra en vigor cuando la KMS clave se ajusta a la cuota de alias por KMS clave. Si una KMS clave supera esta cuota, se deniega el acceso a la KMS clave a los directores que estén autorizados a utilizarla en virtud de la kms:ResourceAliases condición. KMS

Para especificar el alias en esta condición de política, utilice un nombre del alias, como, por ejemplo, alias/project-alpha, o un patrón de nombre de alias, como alias/*test*. No puede especificar un alias ARN en el valor de esta clave de condición. Para cumplir la condición, la KMS clave utilizada en la operación debe tener el alias especificado. No importa si la KMS clave se identifica en la solicitud de la operación ni cómo se identifica.

Se trata de una clave de condición multivalor que compara el conjunto de alias asociado a una KMS clave con el conjunto de alias de la política. Para determinar cómo se comparan estos conjuntos, debe proporcionar un operador de conjuntos ForAnyValue o ForAllValues en la condición de política. Para obtener más información sobre los operadores de conjuntos, consulte Uso de varias claves y valores en la Guía del usuario. IAM

  • ForAnyValue: Al menos un alias asociado a la KMS clave debe coincidir con un alias de la condición de la política. Se permiten otros alias. Si la KMS clave no tiene alias, no se cumple la condición.

  • ForAllValues: todos los alias asociados a la KMS clave deben coincidir con un alias de la política. Este operador de conjunto limita los alias asociados a la KMS clave a los que figuran en la condición de la política. No requiere ningún alias, pero prohíbe los alias no especificados.

Por ejemplo, la siguiente declaración de IAM política permite al director llamar a la GenerateDataKeyoperación desde cualquier KMS clave de la especificada Cuenta de AWS que esté asociada al finance-key alias. (Las políticas clave de las KMS claves afectadas también deben permitir que la cuenta del principal las utilice para esta operación). Para indicar que la condición se cumple cuando se cumple uno de los muchos alias que podrían estar asociados a la KMS clavealias/finance-key, la condición utiliza el operador ForAnyValue set.

Como la kms:ResourceAliases condición se basa en el recurso y no en la solicitud, una llamada es GenerateDataKey válida para cualquier KMS clave asociada al finance-key alias, incluso si la solicitud utiliza un identificador de clave o una clave ARN para identificar la KMS clave.

{ "Sid": "AliasBasedIAMPolicy", "Effect": "Allow", "Action": "kms:GenerateDataKey", "Resource": [ "arn:aws:kms:*:111122223333:key/*", "arn:aws:kms:*:444455556666:key/*" ], "Condition": { "ForAnyValue:StringEquals": { "kms:ResourceAliases": "alias/finance-key" } } }

El siguiente ejemplo IAM de declaración de política permite al director habilitar y deshabilitar KMS las claves, pero solo cuando todos los alias de las KMS claves incluyen "»Test. Esta declaración de política utiliza dos condiciones. La condición con el operador ForAllValues set requiere que todos los alias asociados a la KMS clave incluyan la palabra «Test». La condición con el operador ForAnyValue set requiere que la KMS clave tenga al menos un alias con la palabra «Test». Sin la ForAnyValue condición, esta declaración de política habría permitido al director utilizar KMS claves que no tuvieran alias.

{ "Sid": "AliasBasedIAMPolicy", "Effect": "Allow", "Action": [ "kms:EnableKey", "kms:DisableKey" ], "Resource": "arn:aws:kms:*:111122223333:key/*", "Condition": { "ForAllValues:StringLike": { "kms:ResourceAliases": [ "alias/*Test*" ] }, "ForAnyValue:StringLike": { "kms:ResourceAliases": [ "alias/*Test*" ] } } }

km: ReplicaRegion

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:ReplicaRegion

Cadena (lista)

Valor único

ReplicateKey

Políticas de claves y políticas de IAM

Puede utilizar esta clave de condición para limitar la capacidad Regiones de AWS de un principal de replicar una clave multirregional. La clave de kms:ReplicaRegion condición controla el acceso a la ReplicateKeyoperación en función del valor del ReplicaRegionparámetro de la solicitud. Este parámetro especifica la Región de AWS para la nueva clave de réplica.

El valor de la condición es uno o más Región de AWS nombres, como us-east-1 oap-southeast-2, o patrones de nombres, comoeu-*. Para obtener una lista de los nombres de Regiones de AWS esos AWS KMS soportes, consulte los AWS Key Management Service puntos finales y las cuotas en. Referencia general de AWS

Por ejemplo, la siguiente declaración de política clave utiliza la clave de kms:ReplicaRegion condición para permitir que los directores llamen a la ReplicateKeyoperación solo cuando el valor del ReplicaRegion parámetro es una de las regiones especificadas.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/Administrator" }, "Action": "kms:ReplicateKey" "Resource": "*", "Condition": { "StringEquals": { "kms:ReplicaRegion": [ "us-east-1", "eu-west-3", "ap-southeast-2" ] } } }

Esta clave de condición controla el acceso únicamente a la ReplicateKeyoperación. Para controlar el acceso a la UpdatePrimaryRegionoperación, utilice la clave de PrimaryRegion condición kms:.

km: RetiringPrincipal

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:RetiringPrincipal

Cadena (lista)

Valor único

CreateGrant

Políticas de claves y políticas de IAM

Puede utilizar esta clave de condición para controlar el acceso a la CreateGrantoperación en función del valor del RetiringPrincipalparámetro de la solicitud. Por ejemplo, puede crear concesiones para usar una KMS clave solo cuando la clave de RetiringPrincipal la CreateGrant solicitud coincida con la de RetiringPrincipal la declaración de condición.

Para especificar el principal que se retira, utilice el nombre de recurso de Amazon (ARN) del AWS principal. Entre los principales válidos se incluyen IAM los usuarios Cuentas de AWS, los IAM roles, los usuarios federados y los usuarios con roles asumidos. Para obtener ayuda con la ARN sintaxis de un director, consulte la IAMARNsGuía del IAMusuario.

El siguiente ejemplo de declaración de política clave permite a un usuario crear concesiones para la KMS clave. La clave de kms:RetiringPrincipal condición restringe el permiso a CreateGrant las solicitudes en las que el principal de la concesión que se retira es el. LimitedAdminRole

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:RetiringPrincipal": "arn:aws:iam::111122223333:role/LimitedAdminRole" } } }

Véase también

km: RotationPeriodInDays

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:RotationPeriodInDays

Numérico

Valor único

EnableKeyRotation

Políticas de claves y políticas de IAM

Puede usar esta clave de condición para limitar los valores que los directores pueden especificar en el RotationPeriodInDays parámetro de una EnableKeyRotationsolicitud.

RotationPeriodInDaysEspecifica el número de días entre cada fecha de rotación automática de claves. AWS KMS permite especificar un período de rotación de entre 90 y 2560 días, pero puede utilizar la clave de kms:RotationPeriodInDays condición para restringir aún más el período de rotación, por ejemplo, imponiendo un período de rotación mínimo dentro del rango válido.

Por ejemplo, la siguiente declaración de política clave utiliza la clave de kms:RotationPeriodInDays condición para impedir que los directores habiliten la rotación de claves si el período de rotación es inferior o igual a 180 días.

{ "Effect": "Deny", "Action": "kms:EnableKeyRotation", "Principal": "*", "Resource": "*", "Condition" : { "NumericLessThanEquals" : { "kms:RotationPeriodInDays" : "180" } } }

km: ScheduleKeyDeletionPendingWindowInDays

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:ScheduleKeyDeletionPendingWindowInDays

Numérico

Valor único

ScheduleKeyDeletion

Políticas de claves y políticas de IAM

Puede usar esta clave de condición para limitar los valores que los directores pueden especificar en el PendingWindowInDays parámetro de una ScheduleKeyDeletionsolicitud.

PendingWindowInDaysEspecifica el número de días que deben AWS KMS transcurrir antes de eliminar una clave. AWS KMS permite especificar un período de espera de entre 7 y 30 días, pero puede usar la clave de kms:ScheduleKeyDeletionPendingWindowInDays condición para restringir aún más el período de espera, por ejemplo, imponiendo un período de espera mínimo dentro del rango válido.

Por ejemplo, la siguiente declaración de política de claves utiliza la clave de condición kms:ScheduleKeyDeletionPendingWindowInDays para impedir que las entidades principales programen la eliminación de claves si el periodo de espera es inferior o igual a 21 días.

{ "Effect": "Deny", "Action": "kms:ScheduleKeyDeletion", "Principal": "*", "Resource": "*", "Condition" : { "NumericLessThanEquals" : { "kms:ScheduleKeyDeletionPendingWindowInDays" : "21" } } }

km: SigningAlgorithm

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:SigningAlgorithm

Cadena

Valor único

Sign

Verify

Políticas de claves y políticas de IAM

Puede usar la clave de kms:SigningAlgorithm condición para controlar el acceso a las operaciones de firma y verificación en función del valor del SigningAlgorithmparámetro de la solicitud. Esta clave de condición no afecta a las operaciones realizadas fuera de AWS KMS, como la verificación de firmas con la clave pública en un KMS key pair asimétrico externo a. AWS KMS

El siguiente ejemplo de política de claves permite a los usuarios que pueden asumir el testers rol usar la KMS clave para firmar mensajes solo cuando el algoritmo de firma utilizado para la solicitud es un PSS algoritmo RSASSA _, como. RSASSA_PSS_SHA512

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/testers" }, "Action": "kms:Sign", "Resource": "*", "Condition": { "StringLike": { "kms:SigningAlgorithm": "RSASSA_PSS*" } } }

Véase también

kms: ValidTo

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:ValidTo

Timestamp

Valor único

ImportKeyMaterial

Políticas de claves y políticas de IAM

La clave de kms:ValidTo condición controla el acceso a la ImportKeyMaterialoperación en función del valor del ValidToparámetro de la solicitud, que determina cuándo caduca el material clave importado. El valor se expresa en tiempo Unix.

De forma predeterminada, el parámetro ValidTo es obligatorio en las solicitudes ImportKeyMaterial. Sin embargo, si el valor del ExpirationModelparámetro esKEY_MATERIAL_DOES_NOT_EXPIRE, no es válido. ValidTo También puede usar la clave de ExpirationModel condición kms: para requerir el ExpirationModel parámetro o un valor de parámetro específico.

El siguiente ejemplo de declaración de política permite a un usuario importar material clave a una KMS clave. La clave de condición kms:ValidTo limita el permiso a las solicitudes ImportKeyMaterial en las que el valor ValidTo sea menor o igual que 1546257599.0 (31 de diciembre de 2018 11:59:59 p. m.).

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:ImportKeyMaterial", "Resource": "*", "Condition": { "NumericLessThanEquals": { "kms:ValidTo": "1546257599.0" } } }

Véase también

kms: ViaService

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:ViaService

Cadena

Valor único

KMSoperaciones de recursos clave

Políticas de claves y políticas de IAM

La clave de kms:ViaService condición limita el uso de una KMS clave a las solicitudes de AWS servicios específicos. Puede especificar uno o varios servicios en cada clave de condición kms:ViaService. La operación debe ser una operación de recursos KMS clave, es decir, una operación que esté autorizada para una KMS clave determinada. Para identificar las operaciones de recursos KMS clave, en la tabla de acciones y recursos, busque un valor de KMS key en la Resources columna de la operación.

Por ejemplo, la siguiente declaración de política clave utiliza la clave de kms:ViaService condición para permitir que una clave gestionada por el cliente se utilice para las acciones especificadas solo cuando la solicitud proviene de Amazon EC2 o Amazon RDS de la región EE.UU. Oeste (Oregón) en nombre deExampleRole.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:ListGrants", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "ec2.us-west-2.amazonaws.com", "rds.us-west-2.amazonaws.com" ] } } }

También puedes usar una clave kms:ViaService condicionada para denegar el permiso de uso de una KMS clave cuando la solicitud proviene de servicios específicos. Por ejemplo, la siguiente declaración de una política de claves utiliza una clave de condición kms:ViaService para impedir que se utilice una clave administrada por el cliente para las operaciones Encrypt cuando la solicitud provenga de AWS Lambda en nombre de ExampleRole.

{ "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": [ "kms:Encrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "lambda.us-west-2.amazonaws.com" ] } } }
importante

Cuando se utiliza la clave de condición kms:ViaService, el servicio realiza la solicitud en nombre de una entidad principal de la Cuenta de AWS. Estas entidades principales deben tener los siguientes permisos:

  • Permiso para usar la KMS clave. La entidad principal debe conceder estos permisos al servicio integrado para que pueda utilizar la clave administrada por el cliente en nombre de la entidad principal. Para obtener más información, consulte Cómo los servicios de AWS usan AWS KMS.

  • Permiso para utilizar el servicio integrado. Para obtener más información sobre cómo dar a los usuarios acceso a un AWS servicio que se integra con él AWS KMS, consulte la documentación del servicio integrado.

Todas las Claves administradas por AWS utilizan una clave de condición kms:ViaService incluida en su documento de política de claves. Esta condición permite que la KMS clave se use solo para las solicitudes que provienen del servicio que creó la KMS clave. Para ver la política clave de una Clave administrada de AWS, utilice la GetKeyPolicyoperación.

La clave de kms:ViaService condición es válida en IAM todas las declaraciones políticas clave. Los servicios que especifique deben estar integrados con AWS KMS y admitir la clave de condición kms:ViaService.

Servicios que admiten la clave de condición kms:ViaService

En la siguiente tabla se enumeran AWS los servicios que están integrados con la clave de kms:ViaService condición en las claves administradas por el cliente AWS KMS y que permiten su uso. Es posible que los servicios de esta tabla no estén disponibles en todas las regiones. Utilice el .amazonaws.com sufijo del AWS KMS ViaService nombre en todas las AWS particiones.

nota

Es posible que deba desplazarse horizontal o verticalmente para ver todos los datos de esta tabla.

Nombre del servicio AWS KMS ViaService nombre
AWS App Runner apprunner.AWS_region.amazonaws.com
AWS AppFabric appfabric.AWS_region.amazonaws.com
Amazon AppFlow appflow.AWS_region.amazonaws.com
AWS Application Migration Service mgn.AWS_region.amazonaws.com
Amazon Athena athena.AWS_region.amazonaws.com
AWS Audit Manager auditmanager.AWS_region.amazonaws.com
Amazon Aurora rds.AWS_region.amazonaws.com
AWS Backup backup.AWS_region.amazonaws.com
AWS Backup Gateway backup-gateway.AWS_region.amazonaws.com
Amazon Chime SDK chimevoiceconnector.AWS_region.amazonaws.com
AWS CodeArtifact codeartifact.AWS_region.amazonaws.com
CodeGuru Revisor de Amazon codeguru-reviewer.AWS_region.amazonaws.com
Amazon Comprehend comprehend.AWS_region.amazonaws.com
Amazon Connect connect.AWS_region.amazonaws.com
Perfiles de clientes de Amazon Connect profile.AWS_region.amazonaws.com
Amazon Q in Connect wisdom.AWS_region.amazonaws.com
AWS Database Migration Service (AWS DMS) dms.AWS_region.amazonaws.com
AWS Directory Service directoryservice.AWS_region.amazonaws.com
Amazon DynamoDB dynamodb.AWS_region.amazonaws.com
Amazon DocumentDB docdb-elastic.AWS_region.amazonaws.com
Amazon EC2 Systems Manager (SSM) ssm.AWS_region.amazonaws.com
Tienda Amazon Elastic Block (AmazonEBS) ec2.AWS_region.amazonaws.com (EBS solamente)
Amazon Elastic Container Registry (AmazonECR) ecr.AWS_region.amazonaws.com
Amazon Elastic File System (AmazonEFS) elasticfilesystem.AWS_region.amazonaws.com
Amazon ElastiCache

Incluye ambos ViaService nombres en el valor de la clave de condición:

  • elasticache.AWS_region.amazonaws.com

  • dax.AWS_region.amazonaws.com

AWS Elemental MediaTailor mediatailor.AWS_region.amazonaws.com
AWS Resolución de la entidad entityresolution.AWS_region.amazonaws.com
Amazon EventBridge events.AWS_region.amazonaws.com
Amazon FinSpace finspace.AWS_region.amazonaws.com
Amazon Forecast forecast.AWS_region.amazonaws.com
Amazon FSx fsx.AWS_region.amazonaws.com
AWS Glue glue.AWS_region.amazonaws.com
AWS Ground Station groundstation.AWS_region.amazonaws.com
Amazon GuardDuty malware-protection.AWS_region.amazonaws.com
AWS HealthLake healthlake.AWS_region.amazonaws.com
AWS IoT SiteWise iotsitewise.AWS_region.amazonaws.com
Amazon Kendra kendra.AWS_region.amazonaws.com
Amazon Keyspaces (para Apache Cassandra) cassandra.AWS_region.amazonaws.com
Amazon Kinesis kinesis.AWS_region.amazonaws.com
Amazon Data Firehose firehose.AWS_region.amazonaws.com
Amazon Kinesis Video Streams kinesisvideo.AWS_region.amazonaws.com
AWS Lambda lambda.AWS_region.amazonaws.com
Amazon Lex lex.AWS_region.amazonaws.com
AWS License Manager license-manager.AWS_region.amazonaws.com
Amazon Location Service geo.AWS_region.amazonaws.com
Amazon Lookout for Equipment lookoutequipment.AWS_region.amazonaws.com
Amazon Lookout for Metrics lookoutmetrics.AWS_region.amazonaws.com
Amazon Lookout for Vision lookoutvision.AWS_region.amazonaws.com
Amazon Macie macie.AWS_region.amazonaws.com
AWS Mainframe Modernization m2.AWS_region.amazonaws.com
AWS Mainframe Modernization Pruebas de aplicaciones apptest.AWS_region.amazonaws.com
Amazon Managed Blockchain managedblockchain.AWS_region.amazonaws.com
Amazon Managed Streaming para Apache Kafka (Amazon) MSK kafka.AWS_region.amazonaws.com
Flujos de trabajo gestionados por Amazon para Apache Airflow () MWAA airflow.AWS_region.amazonaws.com
Amazon MemoryDB memorydb.AWS_region.amazonaws.com
Amazon Monitron monitron.AWS_region.amazonaws.com
Amazon MQ mq.AWS_region.amazonaws.com
Amazon Neptune rds.AWS_region.amazonaws.com
Amazon Nimble Studio nimble.AWS_region.amazonaws.com
AWS HealthOmics omics.AWS_region.amazonaws.com
OpenSearch Servicio Amazon es.AWS_region.amazonaws.com, aoss.AWS_region.amazonaws.com
AWS Proton proton.AWS_region.amazonaws.com
Base de datos Amazon Quantum Ledger (AmazonQLDB) qldb.AWS_region.amazonaws.com
Amazon RDS Performance Insights rds.AWS_region.amazonaws.com
Amazon Redshift redshift.AWS_region.amazonaws.com
Editor de consultas de Amazon Redshift V2 sqlworkbench.AWS_region.amazonaws.com
Amazon Redshift Serverless redshift-serverless.AWS_region.amazonaws.com
Amazon Rekognition rekognition.AWS_region.amazonaws.com
Amazon Relational Database Service (AmazonRDS) rds.AWS_region.amazonaws.com
Almacén de datos replicados de Amazon ards.AWS_region.amazonaws.com
Amazon SageMaker sagemaker.AWS_region.amazonaws.com
AWS Secrets Manager secretsmanager.AWS_region.amazonaws.com
Amazon Security Lake securitylake.AWS_region.amazonaws.com
Amazon Simple Email Service (AmazonSES) ses.AWS_region.amazonaws.com
Amazon Simple Notification Service (AmazonSNS) sns.AWS_region.amazonaws.com
Amazon Simple Queue Service (AmazonSQS) sqs.AWS_region.amazonaws.com
Amazon Simple Storage Service (Amazon S3) s3.AWS_region.amazonaws.com
AWS Snowball importexport.AWS_region.amazonaws.com
AWS Step Functions states.AWS_region.amazonaws.com
AWS Storage Gateway storagegateway.AWS_region.amazonaws.com
AWS Systems Manager Incident Manager ssm-incidents.AWS_region.amazonaws.com
AWS Systems Manager Incident Manager Contactos ssm-contacts.AWS_region.amazonaws.com
Amazon Timestream timestream.AWS_region.amazonaws.com
Amazon Translate translate.AWS_region.amazonaws.com
Acceso verificado de AWS verified-access.AWS_region.amazonaws.com
Amazon WorkMail workmail.AWS_region.amazonaws.com
Amazon WorkSpaces workspaces.AWS_region.amazonaws.com
Amazon WorkSpaces Thin Client thinclient.AWS_region.amazonaws.com
Amazon WorkSpaces Web workspaces-web.AWS_region.amazonaws.com
AWS X-Ray xray.AWS_region.amazonaws.com

km: WrappingAlgorithm

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:WrappingAlgorithm

Cadena

Valor único

GetParametersForImport

Políticas de claves y políticas de IAM

Esta clave de condición controla el acceso a la GetParametersForImportoperación en función del valor del WrappingAlgorithmparámetro de la solicitud. Puede utilizar esta condición para exigir que las entidades principales usen un algoritmo para cifrar el material durante el proceso de importación. Las solicitudes de la clave pública y el token de importación necesarios no se realizan cuando especifican un algoritmo de encapsulamiento diferente.

La siguiente declaración de política de clave de ejemplo utiliza la clave de condición kms:WrappingAlgorithm para conceder al usuario de ejemplo permiso para llamar a la operación GetParametersForImport, pero le impide utilizar el algoritmo de encapsulamiento RSAES_OAEP_SHA_1. Cuando WrappingAlgorithm en la solicitud GetParametersForImport es RSAES_OAEP_SHA_1, se produce un error en la operación.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:GetParametersForImport", "Resource": "*", "Condition": { "StringNotEquals": { "kms:WrappingAlgorithm": "RSAES_OAEP_SHA_1" } } }

Véase también

km: WrappingKeySpec

AWS KMS claves de condición Tipo de condición Tipo de valor APIoperaciones Tipo de política

kms:WrappingKeySpec

Cadena

Valor único

GetParametersForImport

Políticas de claves y políticas de IAM

Esta clave de condición controla el acceso a la GetParametersForImportoperación en función del valor del WrappingKeySpecparámetro de la solicitud. Puede utilizar esta condición para exigir que las entidades principales usen un determinado tipo de clave pública durante el proceso de importación. Si la solicitud especifica un tipo de clave diferente, produce un error.

Como el único valor válido del parámetro WrappingKeySpec es RSA_2048, al impedir que los usuarios utilicen este valor, se evita que utilicen la operación GetParametersForImport.

En el ejemplo siguiente, la declaración de la política utiliza la clave de condición kms:WrappingAlgorithm para requerir que el parámetro WrappingKeySpec de la solicitud sea RSA_4096.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:GetParametersForImport", "Resource": "*", "Condition": { "StringEquals": { "kms:WrappingKeySpec": "RSA_4096" } } }

Véase también