As chaves de condição determinam quando uma instrução de política entra em vigor. Adicione-as a políticas de chave, políticas de credencial e políticas personalizadas do Resource Access Management (RAM) para controlar o acesso a recursos e operações do KMS.
O campo Principal nos exemplos de política é obrigatório para políticas de chave e de credencial. Se você utilizar uma política personalizada do RAM, omita esse campo.
Chaves de condição universais do Alibaba Cloud
acs:SourceIp
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
acs:SourceIp | Endereço IP público do cliente que envia a solicitação | String | Todas as operações OpenAPI do KMS (API overview). |
|
|
Exemplo de política do RAM
Permita a operação GenerateDataKey apenas a partir do intervalo de endereços IP 116.62.XX.XX/24.
{
"Statement": [
{
"Action": "kms:GenerateDataKey",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"IpAddress": {
"acs:SourceIp": "116.62.XX.XX/24"
}
}
}
],
"Version": "1"
}
Exemplo de política de chave/credencial
Permita que o usuário do RAM ramuser1 execute operações do KMS apenas a partir do endereço 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
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
acs:SourceVpc | VPC do cliente solicitante. Válido apenas para solicitações originadas de uma VPC do Alibaba Cloud. | String | Todas as operações OpenAPI do KMS (API overview). | ID da VPC. Exemplo: |
|
Limites:
Todas as ações no campo
Statementda política devem começar comkms:, como"Action":"kms:*"e"Action":"kms:GenerateDataKey". Valores como"Action":"*"e"Action":"k*"são inválidos.Suportado apenas em regiões específicas ().
Exemplo de política de chave/credencial
Permita que o usuário do RAM ramuser1 execute operações do KMS apenas a partir da 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
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
acs:VpcSourceIp | Endereço IP do cliente solicitante. Válido apenas para solicitações originadas de uma VPC do Alibaba Cloud. | String | Todas as operações OpenAPI do KMS (API overview). |
|
|
Limites: Suportado apenas em regiões específicas ()
Exemplo de política do RAM
Permita a operação GenerateDataKey apenas a partir do bloco CIDR 172.168.XX.XX/24 na vpc-bp1717bghfnkqg5wn****.
{
"Statement": [
{
"Action": "kms:GenerateDataKey",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"StringEquals": {
"acs:SourceVpc": "vpc-bp1717bghfnkqg5wn****"
},
"IpAddress": {
"acs:VpcSourceIp": "172.168.**.**/24"
}
}
}
],
"Version": "1"
}
Exemplo de política de chave/credencial
Permita que o usuário do RAM ramuser1 execute operações do KMS apenas a partir do endereço IP da 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
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
acs:SecureTransport | Indica se a solicitação utiliza HTTPS | Boolean | Todas as operações OpenAPI do KMS (API overview). |
|
|
Exemplo de política do RAM
Permita todas as operações do KMS apenas quando a solicitação for enviada via HTTPS.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "kms:*",
"Resource": "*",
"Condition": {
"Bool": {
"acs:SecureTransport": "true"
}
}
}
]
}
Exemplo de política de chave/credencial
Permita que o usuário do RAM ramuser1 execute operações do KMS apenas via 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
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
acs:CurrentTime | Momento em que o servidor recebe a solicitação | Data e hora | Todas as operações OpenAPI do KMS (API overview). | Carimbo de data/hora ISO 8601 em UTC. Por exemplo, 20:00:00 em 10 de janeiro de 2024 (UTC+8) é expresso como |
|
Exemplo de política de chave/credencial
Permita que o usuário do RAM ramuser1 execute operações do KMS apenas 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
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
acs:MFAPresent | Indica se o MFA foi utilizado no login | Boolean | Todas as operações OpenAPI do KMS (API overview). |
|
|
Exemplo de política de chave/credencial
Permita que o usuário do RAM ramuser1 execute operações do KMS apenas quando o MFA estiver ativado.
{
"Version": "1",
"Statement": [
{
"Sid": "kms policy",
"Effect": "Allow",
"Action": "kms:*",
"Principal": {
"RAM": [
"acs:ram::1192853035****:user/ramuser1"
]
},
"Resource": "*",
"Condition": {
"Bool": {
"acs:MFAPresent": [
"true"
]
}
}
}
]
}
Chaves de condição do KMS (relacionadas a chaves)
kms:tag (chaves)
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
kms:tag (chaves) | Filtra o acesso com base nas tags da chave | String |
| Uma tag de chave personalizada |
|
kms:EncryptionAlgorithm
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
kms:EncryptionAlgorithm | Filtra o acesso com base no algoritmo de criptografia da solicitação | String |
| Um algoritmo de criptografia, como |
|
Exemplo de política de chave
Negue ao usuário do RAM key_ramuser1 o uso de qualquer algoritmo de criptografia diferente de SYMMETRIC_DEFAULT para criptografia, descriptografia ou recriptografia.
{
"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}
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
kms:EncryptionContext:${EncryptionContextKey} | Filtra o acesso com base nos pares chave-valor do contexto de criptografia na solicitação | String |
| Um contexto de criptografia personalizado |
|
Exemplo de política de chave
Permita que todos os usuários do RAM na conta do Alibaba Cloud 119285303511**** executem a operação GenerateDataKey apenas quando o valor de Project no contexto de criptografia for ProjectA.
{
"Effect": "Allow",
"Principal": {
"RAM": [
"acs:ram::119285303511****:*"
]
},
"Action": "kms:GenerateDataKey",
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:EncryptionContext:Project": "ProjectA"
}
}
}
kms:EncryptionContextKeys
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
kms:EncryptionContextKeys | Filtra o acesso com base nos nomes das chaves do contexto de criptografia na solicitação. Verifica apenas os nomes das chaves, não os valores. | Array de strings |
| Um nome de chave personalizado de um par chave-valor do contexto de criptografia | Política de chave |
Exemplo de política de chave
Permita que todos os usuários do RAM na conta do Alibaba Cloud 119285303511**** executem a operação GenerateDataKey apenas quando o contexto de criptografia contiver uma chave chamada Project.
{
"Effect": "Allow",
"Principal": {
"RAM": [
"acs:ram::119285303511****:*"
]
},
"Action": "kms:GenerateDataKey",
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:EncryptionContextKeys": "Project"
}
}
}
kms:ExpirationModel
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
kms:ExpirationModel | Filtra o acesso à operação ImportKeyMaterial com base no parâmetro | String | ImportKeyMaterial |
|
|
Exemplo de política de chave
Permita que todos os usuários do RAM na conta do Alibaba Cloud 119285303511**** importem material de chave apenas quando o modelo de expiração for 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
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
kms:ValidTo | Filtra o acesso à operação ImportKeyMaterial com base no parâmetro | Data | ImportKeyMaterial | Formato de carimbo de data/hora UNIX |
|
Exemplo de política de chave
Permita que todos os usuários do RAM na conta do Alibaba Cloud 119285303511**** importem material de chave apenas antes de 20 de junho de 2024.
{
"Effect": "Allow",
"Principal": {
"RAM": "acs:ram::119285303511****:*"
},
"Action": "kms:ImportKeyMaterial",
"Resource": "*",
"Condition": {
"NumericLessThanEquals": {
"kms:ValidTo": "1718841600"
}
}
}
kms:KeyOrigin
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
kms:KeyOrigin | Filtra o acesso com base na propriedade | String | Todas as operações OpenAPI relacionadas a chaves (API overview). |
|
|
kms:KeySpec
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
kms:KeySpec | Filtra o acesso com base na propriedade | String | Todas as operações OpenAPI relacionadas a chaves (API overview). | Uma especificação de chave, como |
|
Exemplo de política de chave
Permita que todos os usuários e funções do RAM na conta do Alibaba Cloud 119285303511**** chamem a operação CreateKey apenas para criar chaves RSA.
{
"Effect": "Allow",
"Action": "kms:CreateKey",
"Principal": {
"RAM": "acs:ram::119285303511****:*"
},
"Resource": "*",
"Condition": {
"StringLike": {
"kms:KeySpec": "RSA_*"
}
}
}
kms:KeyUsage
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
kms:KeyUsage | Filtra o acesso com base na propriedade | String | Todas as operações OpenAPI relacionadas a chaves (API overview). |
|
|
Exemplo de política do RAM
Permita a operação CreateKey apenas quando o uso da chave for ENCRYPT_DECRYPT.
{
"Effect": "Allow",
"Action": "kms:CreateKey",
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:KeyUsage": "ENCRYPT_DECRYPT"
}
}
}
kms:ScheduleKeyDeletionPendingWindowInDays
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
kms:ScheduleKeyDeletionPendingWindowInDays | Filtra o acesso à operação ScheduleKeyDeletion com base no parâmetro | Número | ScheduleKeyDeletion | Período de exclusão agendada da chave, em dias |
|
Exemplo de política de chave
Negue a todos os usuários e funções a execução da operação ScheduleKeyDeletion se o período de exclusão agendada for de 21 dias ou menos.
{
"Effect": "Deny",
"Action": "kms:ScheduleKeyDeletion",
"Principal": "*",
"Resource": "*",
"Condition": {
"NumericLessThanEquals": {
"kms:ScheduleKeyDeletionPendingWindowInDays": "21"
}
}
}
kms:SigningAlgorithm
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
kms:SigningAlgorithm | Filtra o acesso às operações AsymmetricSign e AsymmetricVerify com base no algoritmo de assinatura da solicitação | String |
| Um algoritmo de assinatura, como |
|
kms:WrappingAlgorithm
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
kms:WrappingAlgorithm | Filtra o acesso à operação GetParametersForImport com base no parâmetro | String | GetParametersForImport | Um algoritmo de encapsulamento.Import symmetric key material,Import asymmetric key material. |
|
kms:WrappingKeySpec
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
kms:WrappingKeySpec | Filtra o acesso à operação GetParametersForImport com base no parâmetro | String | GetParametersForImport | Tipo de chave pública de encapsulamento.Import symmetric key material,Import asymmetric key material. |
|
kms:KmsInstanceId (chaves)
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
kms:KmsInstanceId (chaves) | Filtra o acesso com base no ID da instância do KMS associada à solicitação | String | Listadas por categoria abaixo.
| ID da instância |
|
Exemplo de política personalizada do RAM
Permita a operação CreateKey apenas na instância do KMS especificada.
{
"Effect": "Allow",
"Action": "kms:CreateKey",
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:KmsInstanceId": "kst-**"
}
}
}
Exemplo de política de chave
Permita que todos os usuários do RAM na conta do Alibaba Cloud 119285303511**** descriptografem dados apenas na instância do KMS especificada.
{
"Effect": "Allow",
"Principal": {
"RAM": "acs:ram::119285303511****:*"
},
"Action": "kms:Decrypt",
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:KmsInstanceId": "kst-**"
}
}
}
kms:RecipientAttestation:PCR{N}
Chave de condição | Descrição | Tipo de operador de condição | Operações de API |
kms:RecipientAttestation:PCR{N} | Filtra o acesso pelos valores de atestado do enclave. Registros PCR suportados: PCR8 (imagem de runtime do enclave), PCR9 (kernel e bootloader), PCR11 (métricas de aplicação). | String |
|
kms:RecipientAttestation:PCR9 | kernel e bootloader | ||
kms:RecipientAttestation:PCR11 | métricas de aplicação |
Exemplo de política personalizada do RAM
Permita as operações GenerateDataKey e Decrypt em uma chave específica apenas quando os valores de atestado do enclave corresponderem.
{
"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"
}
}
}
]
}
Exemplo de política de chave
Permita que todos os usuários do RAM na conta do Alibaba Cloud 119*******460 executem operações do KMS apenas quando o valor de atestado PCR8 corresponder.
{
"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"
}
Chaves de condição do KMS (relacionadas a credenciais)
kms:tag (credenciais)
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
kms:tag (credenciais) | Filtra o acesso com base nas tags da credencial | String |
| Uma tag de credencial personalizada |
|
kms:SecretName
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
kms:SecretName | Filtra o acesso com base no parâmetro | String | Todas as operações OpenAPI relacionadas a credenciais (API overview). | Um nome de credencial personalizado |
|
kms:EncryptionKeyId
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
kms:EncryptionKeyId | Filtra o acesso com base no ID da chave de criptografia na solicitação de credencial | String |
| ID da chave |
|
kms:SecretVersionId
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
kms:SecretVersionId | Filtra o acesso com base no ID da versão da credencial na solicitação | String |
| Número da versão da credencial |
|
kms:SecretVersionStage
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
kms:SecretVersionStage | Filtra o acesso com base no estágio da versão da credencial na solicitação | String |
|
|
|
kms:SecretType
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
kms:SecretType | Filtra o acesso com base no tipo de credencial na solicitação | String | Todas as operações OpenAPI relacionadas a credenciais (API overview). |
|
|
kms:ForceDeleteWithoutRecovery
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
kms:ForceDeleteWithoutRecovery | Filtra o acesso com base no parâmetro | Boolean | DeleteSecret |
|
|
kms:RecoveryWindowInDays
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
kms:RecoveryWindowInDays | Filtra o acesso à operação DeleteSecret com base na janela de recuperação especificada na solicitação | Número | DeleteSecret | Número de dias |
|
Exemplo de política de credencial
Negue a todos os usuários e funções a execução da operação DeleteSecret se a janela de recuperação for de 10 dias ou menos.
{
"Statement": [
{
"Effect": "Deny",
"Action": "kms:DeleteSecret",
"Principal": "*",
"Resource": "*",
"Condition": {
"NumericLessThanEquals": {
"kms:RecoveryWindowInDays": "10"
}
}
}
]
}
kms:KmsInstanceId (credenciais)
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
kms:KmsInstanceId (credenciais) | Filtra o acesso com base no ID da instância do KMS associada à solicitação | String |
| ID da instância |
|
Exemplo de política personalizada do RAM
Permita a operação CreateSecret apenas na instância do KMS especificada.
{
"Effect": "Allow",
"Action": "kms:CreateSecret",
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:KmsInstanceId": "kst-**"
}
}
}
Exemplo de política de chave
Permita que todos os usuários do RAM na conta do Alibaba Cloud 119285303511**** criem credenciais apenas na instância do KMS especificada.
{
"Effect": "Allow",
"Principal": {
"RAM": "acs:ram::119285303511****:*"
},
"Action": "kms:CreateSecret",
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:KmsInstanceId": "kst-**"
}
}
}
Chaves de condição do KMS (outras)
kms:TlsVersion
Chave de condição | Descrição | Tipo de operador de condição | Operações de API | Faixa de valores | Tipo de política |
kms:TlsVersion | Filtra o acesso com base na versão do TLS na solicitação | String | Todas as operações OpenAPI que exigem autenticação. Operações que não exigem autenticação, comoDescribeRegions, estão excluídas. |
|
|
Exemplo de política do RAM
Negue qualquer operação na chave especificada se a versão do TLS for anterior a 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 condição
Os tipos de operadores de condição incluem String, Number, Data e hora, Boolean e Endereço IP. Para obter os significados e exemplos dos operadores de condição, consulte Condition operators.
Tipo de operador de condição | Tipo suportado |
String |
|
Number |
|
Data e hora |
|
Boolean | Bool |
Endereço IP |
|