Criação de uma política personalizada do GaussDB(for MySQL)
Políticas personalizadas podem ser criadas para complementar as políticas definidas pelo sistema do GaussDB(for MySQL).
Você pode criar uma política personalizada de uma das seguintes maneiras:
- Editor visual: selecione serviços em nuvem, ações, recursos e condições de solicitação. Isso não requer conhecimento de sintaxe de política.
- JSON: escreva políticas do zero ou com base em uma política existente.
Para obter detalhes, consulte Criação de uma política personalizada. Esta seção fornece exemplos de políticas personalizadas do GaussDB(for MySQL) comuns.
Exemplos de políticas personalizadas
- Exemplo 1: permitir que os usuários criem instâncias do GaussDB(for MySQL)
{ "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "gaussdb:instance:create" ] } ] }
- Exemplo 2: negar a exclusão da instância do GaussDB(for MySQL)
Uma política com apenas permissões "Deny" 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 GaussDB FullAccess a um usuário, mas quiser impedir que o usuário exclua instâncias do GaussDB(for MySQL). Crie uma política personalizada para negar exclusão de instância do GaussDB(for MySQL) e anexe ambas as políticas ao grupo ao qual o usuário pertence. Em seguida, o usuário pode executar todas as operações em instâncias do GaussDB(for MySQL), exceto a exclusão de instâncias do GaussDB(for MySQL). O seguinte é um exemplo de uma política de negação:
{ "Version": "1.1", "Statement": [ { "Effect": "Deny" "Action": [ "gaussdb:instance:delete" ], } ] }
- Exemplo 3: definir as permissões para vários serviços em uma política
Uma política personalizada pode conter as ações de um ou vários serviços do mesmo tipo (global ou em nível de projeto). Veja a seguir um exemplo de política que contém ações de vários serviços:
{ "Version": "1.1", "Statement": [ { "Action": [ "gaussdb:instance:create", "gaussdb:instance:modify", "gaussdb:instance:delete", "vpc:publicIps:list", "vpc:publicIps:update" ], "Effect": "Allow" } ] }
- Exemplo 4: permitir que os usuários gerenciem instâncias especificadas e algumas funções de instâncias
Suponha que sua conta tem várias instâncias e você é um administrador de banco de dados. Se você quiser permitir que os usuários gerenciem instâncias especificadas e algumas funções de instâncias, você pode criar a seguinte política de permissão.
{ "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "gaussdb:instance:restart", "gaussdb:instance:modify" ], "Resource": [ "GAUSSDB:*:*:instance:test*" ] }, { "Effect": "Allow", "Action": [ "gaussdb:param:list", "gaussdb:tag:list", "gaussdb:backup:list", "gaussdb:instance:create", "gaussdb:instance:list" ] } ] }
- Os usuários que recebem essas permissões podem exibir todas as instâncias, mas podem gerenciar apenas instâncias autorizadas. Além disso, o administrador do banco de dados ainda pode usar APIs para gerenciar diretamente essas instâncias. Os usuários concedidos as permissões só podem reiniciar e modificar todas as instâncias sob essa conta.
- test* é um exemplo de um nome de instância para correspondência difusa e é obrigatório na política de permissão. Caso contrário, os usuários autorizados não poderão exibir nenhuma instância no console.
- GaussDB(for MySQL) suporta controle de acesso em nível de API. Você pode usar APIs relacionadas para executar controle de acesso refinado no GaussDB(for MySQL). Para obter detalhes, consulte Visão geral da API.