Uma política do Resource Access Management (RAM) é uma política de permissões associada a uma identidade do RAM (usuário, grupo de usuários ou função). Para controlar as ações que um usuário ou função do RAM pode executar nos recursos do Tablestore, associe uma política do RAM que especifique as operações e os recursos permitidos.
Funcionamento
As políticas do RAM utilizam autorização baseada em identidade. Uma política associada a um usuário, grupo de usuários ou função do RAM especifica as operações (Action) que a identidade pode realizar, os recursos (Resource) acessíveis e as condições (Condition) de aplicação da política.
Quando uma identidade do RAM envia uma solicitação, o sistema avalia todas as políticas aplicáveis na seguinte ordem:
A negação explícita tem precedência: Se qualquer política contiver uma regra Deny correspondente à solicitação, o sistema nega a solicitação imediatamente.
Busca por uma permissão explícita: Caso nenhuma regra Deny corresponda, a solicitação será permitida se existir uma regra Allow correspondente.
Negação implícita: Se não houver correspondência com regras Deny nem Allow, o sistema negará a solicitação por padrão.
O Tablestore oferece suporte a dois tipos de políticas do RAM:
Políticas do sistema: Predefinidas pela Alibaba Cloud para cenários comuns de autorização. É possível associar essas políticas, mas não modificá-las.
Políticas personalizadas: Criadas e mantidas por você. Essas políticas proporcionam controle refinado sobre o escopo de recursos, operações e condições de aplicação.
Conceder permissões com uma política do sistema
A Alibaba Cloud cria as políticas do sistema, que podem ser associadas diretamente a uma identidade de usuário no console do RAM. O procedimento abaixo utiliza um usuário do RAM como exemplo.
Acesse a página RAM Users e, na coluna Actions do usuário desejado, clique em Grant Permission.
-
Na caixa de pesquisa, insira o nome da política do sistema a ser associada e selecione-a. O Tablestore oferece suporte às três políticas do sistema a seguir:
Política do sistema
Escopo de permissões
Permissões totais de gerenciamento do Tablestore.
Acesso somente leitura ao Tablestore.
Acesso somente gravação ao Tablestore.
Clique em OK para concluir a configuração de permissões.
Conceder permissões com uma política personalizada
Crie e mantenha políticas personalizadas em duas etapas: primeiro crie a política e depois associe-a a uma identidade de usuário.
Etapa 1: Criar uma política personalizada
Acesse a página Policies e clique em Create Policy.
-
Selecione JSON Editor e insira a política em formato JSON no editor.
A política de exemplo a seguir permite todas as operações na instância
example-instancee em todas as tabelas nela contidas.{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ots:*", "Resource": [ "acs:ots:*:*:instance/example-instance", "acs:ots:*:*:instance/example-instance/table/*" ] } ] }Uma política do RAM contém dois elementos de nível superior: Version e Statement.
Elemento de nível superior
Descrição
Version
Versão da política. Valor fixo em
1, não modificável.Statement
Corpo da política. Contém uma ou mais regras de autorização ou negação. Cada regra possui quatro subelementos: Effect (efeito da autorização), Action (operação autorizada), Resource (recurso autorizado) e Condition (condição de autorização). Consulte a tabela a seguir para obter detalhes.
Subelemento de Statement
Descrição
Effect
Efeito da política. Valores válidos:
AllowouDeny.Action
Operações específicas executadas no recurso. Adicione o prefixo
ots:e utilize o caractere curinga*quando necessário.Resource
Escopo do recurso. Formato:
acs:ots:[region]:[user_id]:instance/[instance_name]/table/[table_name].Condition
Condições para que a política entre em vigor.
Caso especifique múltiplas condições, todas devem ser atendidas (E lógico) para que a política seja aplicada.
Para consultar a sintaxe completa e todos os elementos da política, visualize Authorization policy syntax and elements.
Clique em OK, insira um Policy Name e clique em OK para concluir a criação da política personalizada.
Etapa 2: Associar a política a uma identidade de usuário
Associe a política criada na etapa anterior a uma identidade de usuário. O procedimento abaixo utiliza um usuário do RAM como exemplo.
Acesse a página RAM Users e, na coluna Actions do usuário desejado, clique em Grant Permission.
Insira o nome da política personalizada na caixa de pesquisa e selecione a política desejada.
Clique em OK para concluir a configuração de permissões.
Cenários comuns de autorização
Os cenários a seguir representam casos típicos de uso de políticas do RAM no Tablestore. Cada um inclui um exemplo completo de política em JSON.
Cenário 1: Conceder permissões de leitura e gravação com condições combinadas de IP, horário e protocolo
Permite que usuários do bloco CIDR 10.10.XX.XX/24 leiam e gravem nas instâncias online-01 e online-02, bem como em todas as tabelas dessas instâncias. O acesso restringe-se ao protocolo HTTPS e é permitido apenas antes de 2028-01-01 00:00:00.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "ots:*",
"Resource": [
"acs:ots:*:*:instance/online-01",
"acs:ots:*:*:instance/online-01/table*",
"acs:ots:*:*:instance/online-02",
"acs:ots:*:*:instance/online-02/table*"
],
"Condition": {
"IpAddress": {
"acs:SourceIp": [
"10.10.XX.XX/24"
]
},
"DateLessThan": {
"acs:CurrentTime": "2028-01-01T00:00:00+08:00"
},
"Bool": {
"acs:SecureTransport": "true"
}
}
}
]
}
Cenário 2: Negar solicitações de gravação de um endereço IP específico para instâncias específicas
Nega aos usuários do endereço IP 10.10.XX.XX o acesso de gravação em todas as tabelas das instâncias cujos nomes começam com online ou product na região China (Beijing). Esta regra não restringe operações nas próprias instâncias.
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": [
"ots:Create*",
"ots:Insert*",
"ots:Put*",
"ots:Update*",
"ots:Delete*",
"ots:BatchWrite*"
],
"Resource": [
"acs:ots:cn-beijing:*:instance/online*/table*",
"acs:ots:cn-beijing:*:instance/product*/table*"
],
"Condition": {
"IpAddress": {
"acs:SourceIp": [
"10.10.XX.XX"
]
}
}
}
]
}
Cenário 3: Restringir um usuário do RAM a gerenciar apenas instâncias especificadas
Permite que um usuário do RAM gerencie apenas as instâncias especificadas. A política contém três Statements que concedem, respectivamente, permissões de consulta no console, permissões totais de operação na instância alvo e permissões de consulta no CloudMonitor.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ots:ListInstance",
"ots:ListTagResources"
],
"Resource": "acs:ots:*:*:instance/*"
},
{
"Effect": "Allow",
"Action": "ots:*",
"Resource": [
"acs:ots:*:*:instance/yourInstance",
"acs:ots:*:*:instance/yourInstance/table*"
]
},
{
"Effect": "Allow",
"Action": "cms:Query*",
"Resource": "*"
}
]
}
Cada Statement desempenha uma função específica, conforme descrito na tabela a seguir.
Política | Descrição |
| A página Overview no console do Tablestore carrega a lista de instâncias e a lista de tags. Este Statement concede ao usuário do RAM as permissões de consulta necessárias para carregá-las. Nota Um usuário do RAM que gerencia instâncias pelo console deve possuir essas permissões. |
| Concede ao usuário do RAM todas as permissões na instância |
| Concede ao usuário do RAM permissões do CloudMonitor para visualizar dados de monitoramento de instâncias e tabelas. |