Exemplos de políticas de permissão do RAM para o Key Management Service (KMS). Copie a política correspondente ao seu caso de uso, substitua os espaços reservados e anexe-a ao usuário, grupo de usuários ou função do RAM de destino.
Substitua ${region} e ${account} pelos IDs reais da sua região e da sua conta Alibaba Cloud. Restrinja o escopo de recursos conforme as necessidades do seu negócio.
Escolha uma política
|
Caso de uso |
Política |
|
Gerenciamento completo do ciclo de vida de chaves (crie, rotacionar, exclua, aplicar tag) |
|
|
Inventário e metadados de chaves somente leitura |
|
|
Criptografar, descriptografar e gerar chaves de dados |
|
|
Criptografia e descriptografia com chaves assimétricas |
|
|
Assinatura e verificação com chaves assimétricas |
|
|
Conceder acesso a chaves que compartilham uma tag específica |
|
|
Gerenciamento completo do ciclo de vida de segredos (crie, rotacionar, exclua, aplicar tag) |
|
|
Inventário e metadados de segredos somente leitura |
|
|
Recuperar um valor de segredo específico |
|
|
Restringir a criação de instâncias do KMS a regiões específicas |
|
|
Permitir acesso apenas de endereços IP específicos |
Política que permite acesso a todos os recursos do KMS
Para garantir a segurança dos dados, não configure políticas que permitam acesso a todos os recursos do Key Management Service (KMS). Conceder kms:* em * viola o princípio do menor privilégio e aumenta o impacto potencial caso uma credencial seja comprometida. Utilize uma das políticas com escopo definido abaixo.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:*"
],
"Resource": [
"*"
]
}
]
}
Política que permite acesso a todos os recursos do KMS a partir de blocos CIDR ou endereços IP específicos
A chave de condição acs:SourceIp restringe as chamadas à API do KMS a solicitações originadas de faixas de IP específicas. Neste exemplo, o bloco CIDR 192.168.0.0/16 e o endereço IP 172.16.215.218 têm permissão para executar qualquer ação do KMS.
{
"Version": "1",
"Statement": [{
"Effect": "Allow",
"Action": [
"kms:*"
],
"Resource": [
"*"
],
"Condition": {
"IpAddress": {
"acs:SourceIp": [
"192.168.0.0/16",
"172.16.215.218"
]
}
}
}]
}
Qualquer principal capaz de alterar o IP de source de suas requisições (por exemplo, usando um proxy ou VPN) pode contornar essa restrição. Combine condições baseadas em IP com escopo de recursos para obter controles mais robustos.
Política que permite gerenciar chaves no KMS
Esta política concede permissões completas de gerenciamento de chaves: listar, descrever, crie, ative, desativar, atualize, exclua, aplicar tags, importar material de chave e agendar exclusão de chave. O escopo de recursos abrange tanto chaves quanto aliases na sua conta.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:List*",
"kms:Describe*",
"kms:Create*",
"kms:Enable*",
"kms:Disable*",
"kms:Get*",
"kms:Set*",
"kms:Update*",
"kms:Delete*",
"kms:Cancel*",
"kms:TagResource",
"kms:UntagResource",
"kms:TagResources",
"kms:UntagResources",
"kms:ImportKeyMaterial",
"kms:ScheduleKeyDeletion"
],
"Resource": [
"acs:kms:${region}:${account}:key",
"acs:kms:${region}:${account}:key/*",
"acs:kms:${region}:${account}:alias",
"acs:kms:${region}:${account}:alias/*"
]
}
]
}
Política que permite visualizar a lista de chaves e seus metadados
Utilize esta política para acesso somente leitura ao inventário de chaves. O principal pode listar chaves e visualizar seus metadados, mas não consegue executar operações criptográficas nem realizar alterações.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:List*",
"kms:Describe*"
],
"Resource": [
"acs:kms:${region}:${account}:key",
"acs:kms:${region}:${account}:key/*"
]
}
]
}
Política que permite usar chaves para criptografar dados, descriptografar dados e gerar chaves de dados
Esta política é adequada para contas de serviço de aplicações que realizam criptografia de envelope: kms:Encrypt e kms:Decrypt para criptografia direta, e kms:GenerateDataKey para obter uma chave de dados destinada à criptografia no lado do cliente.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:GenerateDataKey"
],
"Resource": [
"acs:kms:${region}:${account}:key/*",
"acs:kms:${region}:${account}:alias/*"
]
}
]
}
Se você identificar uma chave pelo alias nas operações criptográficas, inclua o recurso de alias (acs:kms:${region}:${account}:alias/*) na política. Sem isso, chamadas baseadas em alias serão negadas mesmo que a chave subjacente tenha permissão.
Política que permite usar chaves com tags específicas para implementar criptografia de envelope, descriptografia e geração de chaves de dados
A condição StringEqualsIgnoreCase em kms:tag/Project limita as operações criptográficas às chaves marcadas com Project=Apollo. Isso permite controlar o acesso por meio de tags nas chaves, em vez de listar ARNs individuais.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:GenerateDataKey"
],
"Resource": [
"acs:kms:${region}:${account}:key/*"
],
"Condition": {
"StringEqualsIgnoreCase": {
"kms:tag/Project": [
"Apollo"
]
}
}
}
]
}
Qualquer principal com permissão para adicionar, modifique ou remover tags de uma chave pode efetivamente expandir ou restringir quem obtém acesso sob esta política. Conceda permissões de gerenciamento de tags (kms:TagResource, kms:TagResources, kms:UntagResource, kms:UntagResources) apenas a administradores confiáveis.
Política que permite usar chaves assimétricas para criptografia e descriptografia
Esta política concede kms:AsymmetricEncrypt e kms:AsymmetricDecrypt em chaves e aliases. Use-a para contas de serviço que executam operações de criptografia e descriptografia assimétrica.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:AsymmetricEncrypt",
"kms:AsymmetricDecrypt"
],
"Resource": [
"acs:kms:${region}:${account}:key/*",
"acs:kms:${region}:${account}:alias/*"
]
}
]
}
Se você identificar uma chave pelo alias nas operações criptográficas, inclua o recurso de alias (acs:kms:${region}:${account}:alias/*) na política. Sem isso, chamadas baseadas em alias serão negadas mesmo que a chave subjacente tenha permissão.
Política que permite usar chaves assimétricas para assinatura e verificação
Esta política concede kms:AsymmetricSign e kms:AsymmetricVerify em chaves e aliases. Use-a para contas de serviço que assinam ou verificam dados com chaves assimétricas.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:AsymmetricSign",
"kms:AsymmetricVerify"
],
"Resource": [
"acs:kms:${region}:${account}:key/*",
"acs:kms:${region}:${account}:alias/*"
]
}
]
}
Se você identificar uma chave pelo alias nas operações criptográficas, inclua o recurso de alias (acs:kms:${region}:${account}:alias/*) na política. Sem isso, chamadas baseadas em alias serão negadas mesmo que a chave subjacente tenha permissão.
Política que permite gerenciar segredos no KMS
Esta política concede permissões completas de gerenciamento de segredos: listar, descrever, crie, atualize, rotacionar, restaurar, exclua e aplicar tags em segredos. O escopo de recursos abrange segredos e seus aliases associados.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:List*",
"kms:Describe*",
"kms:PutSecretValue",
"kms:Update*",
"kms:DeleteSecret",
"kms:RestoreSecret",
"kms:RotateSecret",
"kms:TagResource",
"kms:UntagResource",
"kms:TagResources",
"kms:UntagResources"
],
"Resource": [
"acs:kms:${region}:${account}:secret",
"acs:kms:${region}:${account}:secret/*",
"acs:kms:${region}:${account}:alias",
"acs:kms:${region}:${account}:alias/*"
]
}
]
}
Política que permite visualizar a lista de segredos e seus metadados
Utilize esta política para acesso somente leitura ao inventário de segredos. O principal pode listar segredos e visualizar seus metadados, mas não consegue ler valores de segredos nem realizar alterações.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:List*",
"kms:Describe*"
],
"Resource": [
"acs:kms:${region}:${account}:secret",
"acs:kms:${region}:${account}:secret/*",
"acs:kms:${region}:${account}:alias",
"acs:kms:${region}:${account}:alias/*"
]
}
]
}
Política que permite recuperar o valor do segredo
Esta política concede acesso a um único segredo nomeado (example-secret) e à chave específica (keyId-example) usada para criptografá-lo. Ambas as instruções são obrigatórias: kms:GetSecretValue recupera o valor do segredo, e kms:Decrypt descriptografa a chave de criptografia associada.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "kms:GetSecretValue",
"Resource": "acs:kms:${region}:${account}:secret/example-secret"
},
{
"Effect": "Allow",
"Action": "kms:Decrypt",
"Resource": "acs:kms:${region}:${account}:key/keyId-example"
}
]
}
Política que restringe a criação de instâncias do KMS a regiões especificadas
Esta política impede a criação de instâncias do KMS fora de Singapura (ap-southeast-1) e Kuala Lumpur, Malásia (ap-southeast-3). Ela se aplica apenas a usuários RAM, grupos de usuários RAM e funções RAM que já possuem a permissão AliyunKMSFullAccess. Para obter instruções sobre como anexar esta política, consulte Conceder permissões a um usuário RAM, Conceder permissões a um grupo de usuários RAM e Conceder permissões a uma função RAM.
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": [
"bss:CreateInstance",
"bss:ModifyInstance"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"bssapi:ProductCode": [
"kms"
]
},
"StringNotLike": {
"Resource": [
"acs:kms:ap-southeast-1:*:*",
"acs:kms:ap-southeast-3:*:*"
]
}
}
},
{
"Effect": "Deny",
"Action": "kms:CreateInstance",
"Resource": "*"
}
]
}