Criação de políticas personalizadas
Você pode criar políticas personalizadas para complementar políticas definidas pelo sistema e implementar um controle de acesso mais refinado.
Você pode criar políticas personalizadas de uma das duas maneiras a seguir:
- Editor visual: selecione serviços em nuvem, ações, recursos e condições de solicitação sem a necessidade de conhecer a sintaxe da política.
- JSON: edite políticas de JSON do zero ou com base em uma política existente.
A seguir, descrevemos como criar uma política personalizada que permite aos usuários modificar zonas do DNS no editor visual e na exibição JSON.
Para obter detalhes, consulte Criação de uma política personalizada. Alguns exemplos de políticas do DNS personalizadas comuns são fornecidos.
Criação de uma política personalizada no editor visual
- Efetue login no console de gerenciamento.
- No console de gerenciamento, passe o mouse sobre o nome de usuário no canto superior direito, escolha Identity and Access Management na lista suspensa.
- No painel de navegação esquerdo, escolha Permissions.
- Clique em Create Custom Policy.
A página Create Custom Policy é exibida.
- Insira um nome de política.
- Selecione um escopo no qual a política entrará em vigor com base no tipo de serviços a serem definidos nessa política. Para obter detalhes, consulte Permissões do sistema.
- Global services: selecione esta opção se os serviços aos quais a política está relacionada estiverem disponíveis para todas as regiões após a implantação. Ao criar políticas personalizadas para serviços implantados globalmente, especifique o escopo como Global services. Políticas personalizadas deste escopo devem ser anexadas a grupos de usuários na região de serviço global.
- Project-level services: selecione esta opção se os serviços aos quais a política está relacionada forem implantados em regiões específicas. Ao criar políticas personalizadas para serviços implantados regionalmente, especifique o escopo como Project-level services. As políticas personalizadas deste escopo devem ser anexadas a grupos de usuários em regiões específicas, exceto a região de serviço global.
Selecione Project-level services aqui.
Uma política personalizada pode conter ações de vários serviços que estão todos disponíveis globalmente ou todos implementados apenas em projetos específicos. Para definir as permissões necessárias para acessar os serviços disponíveis globalmente e específicos do projeto, crie duas políticas personalizadas e especifique o escopo, respectivamente, como Global services e Project-level services.
- Selecione Visual editor.
- Na área Policy Content, configure uma política personalizada.
- Selecione Allow ou Deny.
- Selecione Cloud service.
Apenas um serviço de nuvem pode ser selecionado para cada bloco de permissão. Para configurar permissões para vários serviços de nuvem, clique em Adicionar permissões ou alterne para o Criação de uma política personalizada na visualização JSON.
- Selecione as ações.
- (Opcional) Selecione um tipo de recurso. Por exemplo, se você selecionar Specific, poderá clicar em Specify resource path para especificar o recurso a ser autorizado.
- (Opcional) Adicione condições de solicitação especificando chaves de condição, operadores e valores.
Tabela 1 Critério Nome
Descrição
Chave de condição
Uma chave no elemento Condition de uma instrução. Existem chaves de condição globais e de nível de serviço.
- Chave de condição de nível global: O prefixo é g:, que se aplica a todas as operações, como mostrado em Tabela 2.
- Chave de condição no nível do projeto: O prefixo é a abreviação de um serviço, por exemplo, dns:. Esta chave aplica-se apenas às operações do serviço correspondente.
Operador
Usado em conjunto com uma chave de condição para formar uma declaração de condição completa.
Valor
Usado em conjunto com uma chave de condição e um operador que requer uma palavra-chave, para formar uma declaração de condição completa.
Tabela 2 Condição de solicitação global Chaves de condição global
Tipo
Descrição
g:CurrentTime
Horário
Horário em que uma solicitação de autenticação é recebida. O horário está no formato ISO 8601, por exemplo, 2012-11-11T23:59:59Z.
g:DomainName
Cadeia
Nome da conta
g:MFAPresent
Booleano
Se usar a autenticação multifator (MFA) para obter um token
g:MFAAge
Valor
Período de validade do token obtido através do MFA. Esta condição deve ser usada em conjunto com g:MFAPresent.
g:ProjectName
Cadeia
Nome do projeto
g:ServiceName
Cadeia
Nome do serviço
g:UserId
Cadeia
ID do usuário do IAM
g:UserName
Cadeia
Nome de usuário do IAM
- (Opcional) Altere para a visualização JSON. Em seguida, você pode modificar o conteúdo da política na estrutura JSON.
Se a estrutura JSON estiver errada após a modificação, verifique o conteúdo ou clique em Reset para cancelar a modificação
- (Opcional) Para adicionar outro bloco de permissão para a política, clique em adicionar permissões. Como alternativa, clique no ícone de (+) de adição à direita de um bloco de permissão existente para clonar suas permissões.
- (Opcional) Descreva a política.
- Clique em OK. A política personalizada é criada.
- Atribua a política a um grupo de usuários para que os usuários no grupo possam herdar as permissões da política fazendo referência a Criação de um usuário e concessão de permissões do DNS.
Criação de uma política personalizada na visualização JSON
- Efetue login no console de gerenciamento.
- No console de gerenciamento, passe o mouse sobre o nome de usuário no canto superior direito, escolha Identity and Access Management na lista suspensa.
- No painel de navegação esquerdo, escolha Permissions.
- Clique em Create Custom Policy.
A página Create Custom Policy é exibida.
- Insira um nome de política.
- Selecione um escopo no qual a política entrará em vigor com base no tipo de serviços a serem definidos nessa política. Para obter detalhes, consulte Permissões do sistema.
- Global services: selecione esta opção se os serviços aos quais a política está relacionada estiverem disponíveis para todas as regiões após a implantação. Ao criar políticas personalizadas para serviços implantados globalmente, especifique o escopo como Global services. Políticas personalizadas deste escopo devem ser anexadas a grupos de usuários na região de serviço global.
- Project-level services: selecione esta opção se os serviços aos quais a política está relacionada forem implantados em regiões específicas. Ao criar políticas personalizadas para serviços implantados regionalmente, especifique o escopo como Project-level services. As políticas personalizadas deste escopo devem ser anexadas a grupos de usuários em regiões específicas, exceto a região de serviço global.
Selecione Project-level services aqui.
Uma política personalizada pode conter ações de vários serviços que estão todos disponíveis globalmente ou todos implementados apenas em projetos específicos. Para definir as permissões necessárias para acessar os serviços disponíveis globalmente e específicos do projeto, crie duas políticas personalizadas e especifique o escopo, respectivamente, como Global services e Project-level services.
- Selecione JSON.
- (Opcional) Clique em Select Existing Policy, selecione uma política para usá-la como modelo, como DNS FullAccess.
- Clique em OK.
- Modifique as instruções no modelo.
- Effect: digite Allow ou Deny.
- Action: insira as ações listadas na tabela de ações da API do DNS, por exemplo, dns:zone:create.
O valor de Version de uma política personalizada deve ser 1.1.
- (Opcional) Descreva a política.
- Clique em OK. Se a lista de políticas for exibida, a política será criada com êxito. Se uma mensagem indicando o conteúdo incorreto da política for exibida, modifique a política.
- Atribua a política a um grupo de usuários para que os usuários no grupo possam herdar as permissões da política fazendo referência a Criação de um usuário e concessão de permissões do DNS.
Exemplo de personalização de uma política na visualização JSON
- Exemplo 1: autorizar os usuários a criar zonas, adicionar conjuntos de registros e exibir as zonas e conjuntos de registros.
{ "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "dns:zone:create", "dns:recordset:create", "dns:zone:list" "dns:recordset:list" ] }, { "Effect": "Allow", "Action": [ "vpc:*:get*, "vpc:*:list*" ] } ] }
- Exemplo 2: impedir que os usuários excluam recursos do DNS.
Uma política de negação deve ser usada em conjunto com outras políticas. Se as permissões atribuídas a um usuário contiverem "Allow" e "Deny", as permissões "Deny" terão precedência sobre as permissões "Allow".
O método a seguir pode ser usado se você precisar atribuir permissões da política DNS FullAccess a um usuário, mas também proibir o usuário de excluir sistemas de arquivos. Crie uma política personalizada para não permitir a exclusão de recursos e atribua ambas as políticas ao grupo ao qual o usuário pertence. Em seguida, o usuário pode executar todas as operações no DNS, exceto excluir recursos. O seguinte é um exemplo de política de negação:
{ "Version": "1.1", "Statement": [ { "Effect": "Deny", "Action": [ "dns:*:delete*" ] } ] }
- Exemplo 3: definição de permissões para vários serviços em uma política
Uma política personalizada pode conter ações de vários serviços que todos são do tipo global ou de nível de projeto. A seguir, uma política com várias ações:
{ "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "dns:zone:update", "dns:zone:list" ] }, { "Effect": "Allow", "Action": [ "vpc:subnets:create", "vpc:vips:update" ] } ] }