Las claves de condición determinan cuándo entra en vigor una instrucción de política. Agréguelas a las políticas de clave, a las políticas de credencial y a las políticas personalizadas de Resource Access Management (RAM) para controlar el acceso a los recursos y las operaciones de KMS.
El campo Principal es obligatorio en las políticas de clave y en las políticas de credencial que se muestran en los ejemplos. Si utiliza una política personalizada de RAM, omita este campo.
Claves de condición universales de Alibaba Cloud
acs:SourceIp
Clave de condición | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
acs:SourceIp | Dirección IP pública del cliente que envía la solicitud. | String | Todas las operaciones openapi de KMS (API overview). |
|
|
Ejemplo de política de RAM
Permita la operación GenerateDataKey únicamente desde el rango de direcciones IP 116.62.XX.XX/24.
{
"Statement": [
{
"Action": "kms:GenerateDataKey",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"IpAddress": {
"acs:SourceIp": "116.62.XX.XX/24"
}
}
}
],
"Version": "1"
}
Ejemplo de política de clave o de credencial
Permita que el usuario de RAM ramuser1 ejecute operaciones de KMS solo desde la dirección IP 203.0.XX.XX.
{
"Version": "1",
"Statement": [
{
"Sid": "kms policy",
"Effect": "Allow",
"Action": "kms:*",
"Principal": {
"RAM": [
"acs:ram::1192853035****:user/ramuser1"
]
},
"Resource": "*",
"Condition": {
"IpAddress": {
"acs:SourceIp": [
"203.0.XX.XX"
]
}
}
}
]
}
acs:SourceVpc
Clave de condición | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
acs:SourceVpc | VPC del cliente que realiza la solicitud. Solo es válida para solicitudes provenientes de una VPC de Alibaba Cloud. | String | Todas las operaciones openapi de KMS (API overview). | Identificador de la VPC. Por ejemplo: |
|
Límites:
Todas las acciones del campo
Statementde la política deben comenzar conkms:, como"Action":"kms:*"y"Action":"kms:GenerateDataKey". Los valores como"Action":"*"y"Action":"k*"no son válidos.Solo es compatible con regiones específicas ().
Ejemplo de política de clave o de credencial
Permita que el usuario de RAM ramuser1 ejecute operaciones de KMS solo desde vpc-bp1l8j1t3l3j5****.
{
"Version": "1",
"Statement": [
{
"Sid": "kms policy",
"Effect": "Allow",
"Action": "kms:*",
"Principal": {
"RAM": [
"acs:ram::1192853035****:user/ramuser1"
]
},
"Resource": "*",
"Condition": {
"StringEquals": {
"acs:SourceVpc": [
"vpc-bp1l8j1t3l3j5****"
]
}
}
}
]
}
acs:VpcSourceIp
Clave de condición | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
acs:VpcSourceIp | Dirección IP del cliente que realiza la solicitud. Solo es válida para solicitudes provenientes de una VPC de Alibaba Cloud. | String | Todas las operaciones openapi de KMS (API overview). |
|
|
Límites: solo es compatible con regiones específicas ()
Ejemplo de política de RAM
Permita la operación GenerateDataKey únicamente desde el bloque CIDR 172.168.XX.XX/24 en vpc-bp1717bghfnkqg5wn****.
{
"Statement": [
{
"Action": "kms:GenerateDataKey",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"StringEquals": {
"acs:SourceVpc": "vpc-bp1717bghfnkqg5wn****"
},
"IpAddress": {
"acs:VpcSourceIp": "172.168.**.**/24"
}
}
}
],
"Version": "1"
}
Ejemplo de política de clave o de credencial
Permita que el usuario de RAM ramuser1 ejecute operaciones de KMS solo desde la dirección IP de VPC 192.168.XX.XX.
{
"Version": "1",
"Statement": [
{
"Sid": "kms policy",
"Effect": "Allow",
"Action": "kms:*",
"Principal": {
"RAM": [
"acs:ram::1192853035****:user/ramuser1"
]
},
"Resource": "*",
"Condition": {
"IpAddress": {
"acs:VpcSourceIp": [
"192.168.XX.XX"
]
}
}
}
]
}
acs:SecureTransport
Clave de condición | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
acs:SecureTransport | Indica si la solicitud utiliza HTTPS. | Boolean | Todas las operaciones openapi de KMS (API overview). |
|
|
Ejemplo de política de RAM
Permita todas las operaciones de KMS únicamente cuando la solicitud se envíe mediante HTTPS.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "kms:*",
"Resource": "*",
"Condition": {
"Bool": {
"acs:SecureTransport": "true"
}
}
}
]
}
Ejemplo de política de clave o de credencial
Permita que el usuario de RAM ramuser1 ejecute operaciones de KMS solo mediante HTTPS.
{
"Version": "1",
"Statement": [
{
"Sid": "kms policy",
"Effect": "Allow",
"Action": "kms:*",
"Principal": {
"RAM": [
"acs:ram::1192853035****:user/ramuser1"
]
},
"Resource": "*",
"Condition": {
"Bool": {
"acs:SecureTransport": "true"
}
}
}
]
}
acs:CurrentTime
Clave de condición | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
acs:CurrentTime | Hora en la que el servidor recibe la solicitud. | Fecha y hora | Todas las operaciones openapi de KMS (API overview). | Marca de tiempo ISO 8601 en UTC. Por ejemplo, las 20:00:00 del 10 de enero de 2024 (UTC+8) se expresan como |
|
Ejemplo de política de clave o de credencial
Permita que el usuario de RAM ramuser1 ejecute operaciones de KMS solo antes de 2099-12-31T12:00:00Z.
{
"Version": "1",
"Statement": [
{
"Sid": "kms policy",
"Effect": "Allow",
"Action": "kms:*",
"Principal": {
"RAM": [
"acs:ram::1192853035****:user/ramuser1"
]
},
"Resource": "*",
"Condition": {
"DateLessThan": {
"acs:CurrentTime": "2099-12-31T12:00:00Z"
}
}
}
]
}
acs:MFAPresent
Clave de condición | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
acs:MFAPresent | Indica si se utilizó MFA para iniciar sesión. | Boolean | Todas las operaciones openapi de KMS (API overview). |
|
|
Ejemplo de política de clave o de credencial
Permita que el usuario de RAM ramuser1 ejecute operaciones de KMS solo cuando MFA esté habilitado.
{
"Version": "1",
"Statement": [
{
"Sid": "kms policy",
"Effect": "Allow",
"Action": "kms:*",
"Principal": {
"RAM": [
"acs:ram::1192853035****:user/ramuser1"
]
},
"Resource": "*",
"Condition": {
"Bool": {
"acs:MFAPresent": [
"true"
]
}
}
}
]
}
Claves de condición de KMS (relacionadas con claves)
kms:tag (claves)
Clave de condición | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
kms:tag (keys) | Filtra el acceso según las etiquetas de la clave. | String |
| Etiqueta de clave personalizada |
|
kms:EncryptionAlgorithm
Clave de condición | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
kms:EncryptionAlgorithm | Filtra el acceso según el algoritmo de cifrado de la solicitud. | String |
| Un algoritmo de cifrado, como |
|
Ejemplo de política de clave
Deniegue al usuario de RAM key_ramuser1 el uso de cualquier algoritmo de cifrado distinto de SYMMETRIC_DEFAULT para cifrar, descifrar o volver a cifrar.
{
"Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
"Effect": "Deny",
"Principal": {
"RAM": [
"acs:ram::119285303511****:user/key_ramuser1"
]
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt"
],
"Resource": "*",
"Condition": {
"StringNotEquals": {
"kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
}
}
}
kms:EncryptionContext:${EncryptionContextKey}
Clave de condición | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
kms:EncryptionContext:${EncryptionContextKey} | Filtra el acceso según los pares clave-valor del contexto de cifrado de la solicitud. | String |
| Contexto de cifrado personalizado |
|
Ejemplo de política de clave
Permita que todos los usuarios de RAM de la cuenta de Alibaba Cloud 119285303511**** ejecuten la operación GenerateDataKey solo cuando el valor de Project en el contexto de cifrado sea ProjectA.
{
"Effect": "Allow",
"Principal": {
"RAM": [
"acs:ram::119285303511****:*"
]
},
"Action": "kms:GenerateDataKey",
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:EncryptionContext:Project": "ProjectA"
}
}
}
kms:EncryptionContextKeys
Clave de condición | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
kms:EncryptionContextKeys | Filtra el acceso según los nombres de clave del contexto de cifrado de la solicitud. Solo comprueba los nombres de clave, no los valores. | Array of strings |
| Nombre de clave personalizado de un par clave-valor del contexto de cifrado | Política de clave |
Ejemplo de política de clave
Permita que todos los usuarios de RAM de la cuenta de Alibaba Cloud 119285303511**** ejecuten la operación GenerateDataKey solo cuando el contexto de cifrado contenga una clave llamada Project.
{
"Effect": "Allow",
"Principal": {
"RAM": [
"acs:ram::119285303511****:*"
]
},
"Action": "kms:GenerateDataKey",
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:EncryptionContextKeys": "Project"
}
}
}
kms:ExpirationModel
Clave de condición | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
kms:ExpirationModel | Filtra el acceso a la operación ImportKeyMaterial según el parámetro | String | ImportKeyMaterial |
|
|
Ejemplo de política de clave
Permita que todos los usuarios de RAM de la cuenta de Alibaba Cloud 119285303511**** importen material de clave solo cuando el modelo de caducidad sea KEY_MATERIAL_DOES_NOT_EXPIRE.
{
"Effect": "Allow",
"Principal": {
"RAM": "acs:ram::119285303511****:*"
},
"Action": "kms:ImportKeyMaterial",
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:ExpirationModel": "KEY_MATERIAL_DOES_NOT_EXPIRE"
}
}
}
kms:ValidTo
Condition key | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
kms:ValidTo | Filtra el acceso a la operación ImportKeyMaterial según el parámetro | Date | ImportKeyMaterial | Formato de marca de tiempo UNIX |
|
Ejemplo de política de clave
Permita que todos los usuarios de RAM de la cuenta de Alibaba Cloud 119285303511**** importen material de clave únicamente antes del 20 de junio de 2024.
{
"Effect": "Allow",
"Principal": {
"RAM": "acs:ram::119285303511****:*"
},
"Action": "kms:ImportKeyMaterial",
"Resource": "*",
"Condition": {
"NumericLessThanEquals": {
"kms:ValidTo": "1718841600"
}
}
}
kms:KeyOrigin
Condition key | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
kms:KeyOrigin | Filtra el acceso según la propiedad | String | Todas las operaciones de openapi relacionadas con claves (API overview). |
|
|
kms:KeySpec
Condition key | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
kms:KeySpec | Filtra el acceso según la propiedad | String | Todas las operaciones de openapi relacionadas con claves (API overview). | Una especificación de clave, como |
|
Ejemplo de política de clave
Permita que todos los usuarios y roles de RAM de la cuenta de Alibaba Cloud 119285303511**** invoquen la operación CreateKey únicamente para crear claves RSA.
{
"Effect": "Allow",
"Action": "kms:CreateKey",
"Principal": {
"RAM": "acs:ram::119285303511****:*"
},
"Resource": "*",
"Condition": {
"StringLike": {
"kms:KeySpec": "RSA_*"
}
}
}
kms:KeyUsage
Condition key | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
kms:KeyUsage | Filtra el acceso según la propiedad | String | Todas las operaciones de openapi relacionadas con claves (API overview). |
|
|
Ejemplo de política de RAM
Permita la operación CreateKey solo cuando el uso de la clave sea ENCRYPT_DECRYPT.
{
"Effect": "Allow",
"Action": "kms:CreateKey",
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:KeyUsage": "ENCRYPT_DECRYPT"
}
}
}
kms:ScheduleKeyDeletionPendingWindowInDays
Condition key | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
kms:ScheduleKeyDeletionPendingWindowInDays | Filtra el acceso a la operación ScheduleKeyDeletion según el parámetro | Number | ScheduleKeyDeletion | Periodo de eliminación programada de la clave, en días. |
|
Ejemplo de política de clave
Deniegue a todos los usuarios y roles la ejecución de la operación ScheduleKeyDeletion si el periodo de eliminación programada es de 21 días o menos.
{
"Effect": "Deny",
"Action": "kms:ScheduleKeyDeletion",
"Principal": "*",
"Resource": "*",
"Condition": {
"NumericLessThanEquals": {
"kms:ScheduleKeyDeletionPendingWindowInDays": "21"
}
}
}
kms:SigningAlgorithm
Condition key | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
kms:SigningAlgorithm | Filtra el acceso a las operaciones AsymmetricSign y AsymmetricVerify según el algoritmo de firma de la solicitud. | String |
| Un algoritmo de firma, como |
|
kms:WrappingAlgorithm
Condition key | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
kms:WrappingAlgorithm | Filtra el acceso a la operación GetParametersForImport según el parámetro | String | GetParametersForImport | Un algoritmo de encapsulamiento. Import symmetric key material, Import asymmetric key material. |
|
kms:WrappingKeySpec
Condition key | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
kms:WrappingKeySpec | Filtra el acceso a la operación GetParametersForImport según el parámetro | String | GetParametersForImport | Tipo de clave pública de encapsulamiento. Import symmetric key material, Import asymmetric key material. |
|
kms:KmsInstanceId (claves)
Condition key | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
kms:KmsInstanceId (keys) | Filtra el acceso según el ID de la instancia de KMS asociada a la solicitud. | String | Se enumeran por categoría a continuación.
| ID de instancia |
|
Ejemplo de política personalizada de RAM
Permita la operación CreateKey únicamente en la instancia de KMS especificada.
{
"Effect": "Allow",
"Action": "kms:CreateKey",
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:KmsInstanceId": "kst-**"
}
}
}
Ejemplo de política de clave
Permita que todos los usuarios de RAM de la cuenta de Alibaba Cloud 119285303511**** descifren datos únicamente en la instancia de KMS especificada.
{
"Effect": "Allow",
"Principal": {
"RAM": "acs:ram::119285303511****:*"
},
"Action": "kms:Decrypt",
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:KmsInstanceId": "kst-**"
}
}
}
kms:RecipientAttestation:PCR{N}
Condition key | Descripción | Tipo de operador de condición | Operaciones de API |
kms:RecipientAttestation:PCR{N} | Filtra el acceso mediante los valores de atestación del enclave. Registros PCR compatibles: PCR8 (imagen de entorno de ejecución del enclave), PCR9 (kernel y gestor de arranque) y PCR11 (métricas de la aplicación). | String |
|
kms:RecipientAttestation:PCR9 | Kernel y gestor de arranque. | ||
kms:RecipientAttestation:PCR11 | Métricas de la aplicación. |
Ejemplo de política personalizada de RAM
Permita las operaciones GenerateDataKey y Decrypt en una clave específica solo cuando coincidan los valores de atestación del enclave.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:GenerateDataKey",
"kms:Decrypt"
],
"Resource": "acs:kms:cn-hangzhou:119******460:key/key-hzz******sg5",
"Condition": {
"StringEquals": {
"kms:RecipientAttestation:PCR8": "300705e44da926d8ec85bb7e840******710f303e22de0869a",
"kms:RecipientAttestation:PCR9": "b5753ad8242e1c3b8150caf7098f******440bef5401e02575",
"kms:RecipientAttestation:PCR11": "f9189a4331f1d4ba93d77672401******04a19be1b4d4a5de"
}
}
}
]
}
Ejemplo de política de clave
Permita que todos los usuarios de RAM de la cuenta de Alibaba Cloud 119*******460 ejecuten operaciones de KMS únicamente cuando coincida el valor de atestación PCR8.
{
"Statement": [
{
"Action": [
"kms:*"
],
"Effect": "Allow",
"Principal": {
"RAM": [
"acs:ram::119*******460:*"
]
},
"Resource": [
"*"
],
"Condition": {
"StringEquals": {
"kms:RecipientAttestation:PCR8": "f193c1e72c226a2212d4d8865964239******ca6f02f79ea85e91af"
}
},
"Sid": "kms default key policy"
}
],
"Version": "1"
}
Claves de condición de KMS (relacionadas con credenciales)
kms:tag (credenciales)
Clave de condición | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
kms:tag (credentials) | Filtra el acceso según las etiquetas de la credencial | String |
| Una etiqueta de credencial personalizada |
|
kms:SecretName
Clave de condición | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
kms:SecretName | Filtra el acceso según el parámetro | String | Todas las operaciones de OpenAPI relacionadas con credenciales (API overview). | Un nombre de credencial personalizado |
|
kms:EncryptionKeyId
Clave de condición | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
kms:EncryptionKeyId | Filtra el acceso según el identificador de la clave de cifrado en la solicitud de credencial | String |
| Identificador de clave |
|
kms:SecretVersionId
Clave de condición | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
kms:SecretVersionId | Filtra el acceso según el identificador de versión de la credencial en la solicitud | String |
| El número de versión de la credencial |
|
kms:SecretVersionStage
Clave de condición | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
kms:SecretVersionStage | Filtra el acceso según la etapa de versión de la credencial en la solicitud | String |
|
|
|
kms:SecretType
Clave de condición | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
kms:SecretType | Filtra el acceso según el tipo de credencial en la solicitud | String | Todas las operaciones de OpenAPI relacionadas con credenciales (API overview). |
|
|
kms:ForceDeleteWithoutRecovery
Clave de condición | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
kms:ForceDeleteWithoutRecovery | Filtra el acceso según el parámetro | Boolean | DeleteSecret |
|
|
kms:RecoveryWindowInDays
Clave de condición | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
kms:RecoveryWindowInDays | Filtra el acceso a la operación DeleteSecret según la ventana de recuperación especificada en la solicitud | Number | DeleteSecret | Número de días |
|
Ejemplo de política de credencial
Deniegue la ejecución de la operación DeleteSecret a todos los usuarios y roles si la ventana de recuperación es de 10 días o menos.
{
"Statement": [
{
"Effect": "Deny",
"Action": "kms:DeleteSecret",
"Principal": "*",
"Resource": "*",
"Condition": {
"NumericLessThanEquals": {
"kms:RecoveryWindowInDays": "10"
}
}
}
]
}
kms:KmsInstanceId (credenciales)
Clave de condición | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
kms:KmsInstanceId (credentials) | Filtra el acceso según el identificador de la instancia de KMS asociada a la solicitud | String |
| Identificador de instancia |
|
Ejemplo de política personalizada de RAM
Permita la operación CreateSecret únicamente en la instancia de KMS especificada.
{
"Effect": "Allow",
"Action": "kms:CreateSecret",
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:KmsInstanceId": "kst-**"
}
}
}
Ejemplo de política de clave
Permita que todos los usuarios de RAM de la cuenta de Alibaba Cloud 119285303511**** creen credenciales solo en la instancia de KMS especificada.
{
"Effect": "Allow",
"Principal": {
"RAM": "acs:ram::119285303511****:*"
},
"Action": "kms:CreateSecret",
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:KmsInstanceId": "kst-**"
}
}
}
Claves de condición de KMS (otras)
kms:TlsVersion
Clave de condición | Descripción | Tipo de operador de condición | Operaciones de API | Rango de valores | Tipo de política |
kms:TlsVersion | Filtra el acceso según la versión de TLS de la solicitud | String | Todas las operaciones de OpenAPI que requieren autenticación. Se excluyen las operaciones que no la requieren, como DescribeRegions. |
|
|
Ejemplo de política de RAM
Deniegue cualquier operación sobre la clave especificada si la versión de TLS es anterior a la 1.2.
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": "kms:*",
"Resource": "acs:kms:*:*:key/key-hzz653f1f8fybn5qa****",
"Condition": {
"NumericLessThan": {
"kms:TlsVersion": [
"1.2"
]
}
}
}
]
}
Apéndice: tipos de operadores de condición
Los tipos de operadores de condición incluyen String, Number, Date and time, Boolean e IP address. Para conocer el significado y ver ejemplos de estos operadores, consulte Condition operators.
Tipo de operador de condición | Tipo compatible |
String |
|
Number |
|
Date and time |
|
Boolean | Bool |
IP address |
|