Todos os produtos
Search
Central de documentação

Key Management Service:Exemplos de políticas personalizadas

Última atualização: Jun 27, 2026

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.

Importante

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)

Gerencie chaves

Inventário e metadados de chaves somente leitura

Visualize chaves

Criptografar, descriptografar e gerar chaves de dados

Operações criptográficas simétricas

Criptografia e descriptografia com chaves assimétricas

Criptografia e descriptografia assimétrica

Assinatura e verificação com chaves assimétricas

Assinatura e verificação assimétrica

Conceder acesso a chaves que compartilham uma tag específica

Acesso criptográfico baseado em tags

Gerenciamento completo do ciclo de vida de segredos (crie, rotacionar, exclua, aplicar tag)

Gerencie segredos

Inventário e metadados de segredos somente leitura

Visualize segredos

Recuperar um valor de segredo específico

Recuperar um valor de segredo

Restringir a criação de instâncias do KMS a regiões específicas

Restringir criação de instâncias por região

Permitir acesso apenas de endereços IP específicos

Controle de acesso baseado em IP

Política que permite acesso a todos os recursos do KMS

Importante

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"
        ]
      }
    }
  }]
}
Nota

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/*"
      ]
    }
  ]
}
Nota

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"
                    ]
                }
            }
        }
    ]
}
Importante

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/*"
      ]
    }
  ]
}
Nota

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/*"
      ]
    }
  ]
}
Nota

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": "*"
    }
  ]
}