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 esAWS_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 de ForAllValues
conjunto con las claves de contexto o aws:RequestTag/tag-key
condición, AWS KMS devuelve el siguiente mensaje de error kms:EncryptionContext:
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.
Temas
- km: BypassPolicyLockoutSafetyCheck
- km: CallerAccount
- kms: CustomerMasterKeySpec (obsoleto)
- kms: CustomerMasterKeyUsage (obsoleto)
- km: DataKeyPairSpec
- kms: EncryptionAlgorithm
- kmsEncryptionContext: clave de contexto
- kms: EncryptionContextKeys
- kms: ExpirationModel
- kms: GrantConstraintType
- km: GrantIsFor AWSResource
- km: GrantOperations
- km: GranteePrincipal
- km: KeyAgreementAlgorithm
- km: KeyOrigin
- kms: KeySpec
- kms: KeyUsage
- kms: MacAlgorithm
- kms: MessageType
- kms: MultiRegion
- kms: MultiRegionKeyType
- kms: PrimaryRegion
- km: ReEncryptOnSameKey
- kms: RequestAlias
- km: ResourceAliases
- km: ReplicaRegion
- km: RetiringPrincipal
- km: RotationPeriodInDays
- km: ScheduleKeyDeletionPendingWindowInDays
- km: SigningAlgorithm
- kms: ValidTo
- kms: ViaService
- km: WrappingAlgorithm
- km: WrappingKeySpec
km: BypassPolicyLockoutSafetyCheck
AWS KMS claves de condición | Tipo de condición | Tipo de valor | APIoperaciones | Tipo de política |
---|---|---|---|---|
|
Booleano |
Valor único |
|
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 |
---|---|---|---|---|
|
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 |
---|---|---|---|---|
|
Cadena |
Valor único |
|
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 |
---|---|---|---|---|
|
Cadena |
Valor único |
|
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 |
---|---|---|---|---|
|
Cadena |
Valor único |
|
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: clave de contexto, 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 la función utilizar 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 información, 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 tanto kms: EncryptionContext la clave contextual como la declaración de política kms:EncryptionContextKeys. 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 kms:EncryptionContext: clave de contexto. 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 de conjunto de cualquier condición con kms:EncryptionContext: clave de contexto. 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:Department
ykms: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 ambos kms:EncryptionContext: clave de contexto y kms:EncryptionContextKeysen la declaración de política. La siguiente declaración de política clave utiliza la condición kms:EncryptionContext: clave de contexto 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
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 clave de contexto
el reemplazo, lo determina el operador de la condición de la póliza.valor de contexto
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 kms:EncryptionContext: clave de contexto 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 kms:EncryptionContext: clave de contexto.
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":
"
. Para representar el nombre de usuario, la condición utiliza la variable de política <username>
"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 |
---|---|---|---|---|
|
Cadena (lista) |
Multivalor |
|
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:EncryptionContextKeys
compara 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 |
---|---|---|---|---|
|
Cadena |
Valor único |
|
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 |
---|---|---|---|---|
|
Cadena |
Valor único |
|
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 |
---|---|---|---|---|
|
Booleano |
Valor único |
|
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
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 |
---|---|---|---|---|
|
Cadena |
Multivalor |
|
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 de la solicitud debe coincidir con una operación de subvención de 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ámetroOperations
falta o tiene un valor nulo, la solicitudCreateGrant
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 |
---|---|---|---|---|
|
Cadena |
Valor único |
|
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 |
---|---|---|---|---|
|
Cadena |
Valor único |
|
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 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 |
---|---|---|---|---|
|
Cadena |
Valor único |
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 |
---|---|---|---|---|
|
Cadena |
Valor único |
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 |
---|---|---|---|---|
|
Cadena |
Valor único |
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_DECRYPT
SIGN_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 |
---|---|---|---|---|
|
Cadena |
Valor único |
|
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 |
---|---|---|---|---|
|
Cadena |
Valor único |
|
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 |
---|---|---|---|---|
|
Booleano |
Valor único |
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 |
---|---|---|---|---|
|
Cadena |
Valor único |
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 |
---|---|---|---|---|
|
Cadena (lista) |
Valor único |
|
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 |
---|---|---|---|---|
|
Booleano |
Valor único |
|
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 |
---|---|---|---|---|
|
Cadena (lista) |
Valor único |
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 información, consulte ABACpara 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 |
---|---|---|---|---|
|
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 información, consulte ABACpara 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 «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 |
---|---|---|---|---|
|
Cadena (lista) |
Valor único |
|
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 |
---|---|---|---|---|
|
Cadena (lista) |
Valor único |
|
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 |
---|---|---|---|---|
|
Numérico |
Valor único |
|
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.
RotationPeriodInDays
Especifica 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 |
---|---|---|---|---|
|
Numérico |
Valor único |
|
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.
PendingWindowInDays
Especifica 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 |
---|---|---|---|---|
|
Cadena |
Valor único |
|
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 |
---|---|---|---|---|
|
Timestamp |
Valor único |
|
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 |
---|---|---|---|---|
|
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 Uso del AWS KMS cifrado con AWS servicios.
-
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 KMSkms: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 AppFabric | appfabric. |
Amazon AppFlow | appflow. |
AWS Application Migration Service | mgn. |
Amazon Athena | athena. |
AWS Audit Manager | auditmanager. |
Amazon Aurora | rds. |
AWS Backup | backup. |
AWS Backup Gateway | backup-gateway. |
Copia del modelo Amazon Bedrock | bedrock. |
Amazon Chime SDK | chimevoiceconnector. |
AWS CodeArtifact | codeartifact. |
CodeGuru Revisor de Amazon | codeguru-reviewer. |
Amazon Comprehend | comprehend. |
Amazon Connect | connect. |
Perfiles de clientes de Amazon Connect | profile. |
Amazon Q in Connect | wisdom. |
AWS Database Migration Service (AWS DMS) | dms. |
AWS Directory Service | directoryservice. |
Amazon DynamoDB | dynamodb. |
Amazon DocumentDB | docdb-elastic. |
Amazon EC2 Systems Manager (SSM) | ssm. |
Tienda Amazon Elastic Block (AmazonEBS) | ec2. (EBSsolo) |
Amazon Elastic Container Registry (AmazonECR) | ecr. |
Amazon Elastic File System (AmazonEFS) | elasticfilesystem. |
Amazon ElastiCache |
Incluye ambos ViaService nombres en el valor de la clave de condición:
|
AWS Elemental MediaTailor | mediatailor. |
AWS Resolución de la entidad | entityresolution. |
Amazon EventBridge | events. |
Amazon FinSpace | finspace. |
Amazon Forecast | forecast. |
Amazon FSx | fsx. |
AWS Glue | glue. |
AWS Ground Station | groundstation. |
Amazon GuardDuty | malware-protection. |
AWS HealthLake | healthlake. |
AWS IoT SiteWise | iotsitewise. |
Amazon Kendra | kendra. |
Amazon Keyspaces (para Apache Cassandra) | cassandra. |
Amazon Kinesis | kinesis. |
Amazon Data Firehose | firehose. |
Amazon Kinesis Video Streams | kinesisvideo. |
AWS Lambda | lambda. |
Amazon Lex | lex. |
AWS License Manager | license-manager. |
Amazon Location Service | geo. |
Amazon Lookout for Equipment | lookoutequipment. |
Amazon Lookout for Metrics | lookoutmetrics. |
Amazon Lookout for Vision | lookoutvision. |
Amazon Macie | macie. |
AWS Mainframe Modernization | m2. |
AWS Mainframe Modernization Pruebas de aplicaciones | apptest. |
Amazon Managed Blockchain | managedblockchain. |
Amazon Managed Streaming para Apache Kafka (Amazon) MSK | kafka. |
Flujos de trabajo gestionados por Amazon para Apache Airflow () MWAA | airflow. |
Amazon MemoryDB | memorydb. |
Amazon Monitron | monitron. |
Amazon MQ | mq. |
Amazon Neptune | rds. |
Amazon Nimble Studio | nimble. |
AWS HealthOmics | omics. |
OpenSearch Servicio Amazon | es. ,
aoss. |
AWS Proton | proton. |
Base de datos Amazon Quantum Ledger (AmazonQLDB) | qldb. |
Amazon RDS Performance Insights | rds. |
Amazon Redshift | redshift. |
Editor de consultas de Amazon Redshift V2 | sqlworkbench. |
Amazon Redshift Serverless | redshift-serverless. |
Amazon Rekognition | rekognition. |
Amazon Relational Database Service (AmazonRDS) | rds. |
Almacén de datos replicados de Amazon | ards. |
Amazon SageMaker | sagemaker. |
AWS Secrets Manager | secretsmanager. |
Amazon Security Lake | securitylake. |
Amazon Simple Email Service (AmazonSES) | ses. |
Amazon Simple Notification Service (AmazonSNS) | sns. |
Amazon Simple Queue Service (AmazonSQS) | sqs. |
Amazon Simple Storage Service (Amazon S3) | s3. |
AWS Snowball | importexport. |
AWS Step Functions | states. |
AWS Storage Gateway | storagegateway. |
AWS Systems Manager Incident Manager | ssm-incidents. |
AWS Systems Manager Incident Manager Contactos | ssm-contacts. |
Amazon Timestream | timestream. |
Amazon Translate | translate. |
Acceso verificado de AWS | verified-access. |
Amazon WorkMail | workmail. |
Amazon WorkSpaces | workspaces. |
Amazon WorkSpaces Thin Client | thinclient. |
Amazon WorkSpaces Web | workspaces-web. |
AWS X-Ray | xray. |
km: WrappingAlgorithm
AWS KMS claves de condición | Tipo de condición | Tipo de valor | APIoperaciones | Tipo de política |
---|---|---|---|---|
|
Cadena |
Valor único |
|
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 |
---|---|---|---|---|
|
Cadena |
Valor único |
|
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