Sintaxe da política
O seguinte utiliza uma política personalizada para o OBS como um exemplo para descrever a sintaxe.
{ "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "obs:bucket:ListAllMyBuckets", "obs:bucket:HeadBucket", "obs:bucket:ListBucket", "obs:bucket:GetBucketLocation" ], "Condition": { "StringEndWithIfExists": { "g:UserName": [ "specialCharactor" ] }, "Bool": { "g:MFAPresent": [ "true" ] } }, "Resource": [ "obs:*:*:bucket:*" ] } ] }
Estrutura da política
Uma política consiste em uma versão e uma ou mais declarações (indicando ações diferentes).
![](https://support.huaweicloud.com/intl/pt-br/usermanual-iam/pt-br_image_0000001111040704.png)
Parâmetros da política
Os parâmetros da política incluem Version e Statement, que são descritos na tabela a seguir. Você pode criar políticas personalizadas especificando os parâmetros. Para obter mais detalhes, consulte Casos de uso de políticas personalizadas.
Parâmetro |
Descrição |
Valor |
|
---|---|---|---|
Version |
Versão da política. |
1.1: indica controle de acesso baseado em política. |
|
Statement |
Effect |
Determina se permitir ou negar as operações definidas em action. |
NOTA:
Se as políticas usadas para conceder permissões a um usuário contiverem Allow e Deny para a mesma action, a Deny terá proriodade. |
Action |
Operações a serem realizadas no serviço. |
Formato: "Service name:Resource type:Operation". Caracteres curinga (*) são suportados, indicando todas as opções. Exemplo: obs:bucket:ListAllMybuckets: Permissões para listar todos os buckets do OBS. Veja todas as ações do serviço em sua Referência de APIpor exemplo, consulte Ações suportadas do OBS. |
|
Condition |
Determina quando uma política entra em vigor. Uma condição consiste em uma chave de condição e um operador. |
Formato: "Condition operator:{Condition key:[Value 1,Value 2]}" Se você definir várias condições, a política entrará em vigor somente quando todas as condições forem atendidas. Exemplo: StringEndWithIfExists":{"g:UserName":["specialCharactor"]}: A declaração é válida para usuários cujos nomes terminam com specialCharactor. |
|
Resource |
Recursos sobre os quais a política entra em vigor. |
Formato: Service name:Region:Account ID:Resource type:Resource path. Caracteres curinga (*) são suportados. Exemplo:
|
- Chave de condição
Uma 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.
- As chaves de condição global (começando com g:) se aplicam a todas as operações. O IAM fornece chaves de condição globais communs e chaves de condição globais especiais.
- Chaves de condição globais communs: Os serviços de nuvem não precisam fornecer informações de identidade do usuário. Em vez disso, o IAM abstrai automaticamente as informações do usuário e autentica os usuários. Para obter detalhes, consulte Common global condition keys.
- Chaves de condição globais especiais: O IAM obtém informações de condição dos serviços em nuvem para autenticação.
- As chaves de condição de nível de serviço (começando com uma abreviação de nome de serviço, por exemplo, obs:) aplicam-se apenas a operações no serviço especificado. Para obter detalhes, consulte o guia do usuário do serviço de nuvem correspondente, por exemplo, consulte Condições de solicitação do OBS.
Tabela 2 Chaves de condição globais communs Chave de condição global
Tipo
Descrição
g:CurrentTime
Tempo
Hora em que uma solicitação de autenticação é recebida. O tempo é expresso no formato definido pelo ISO 8601, por exemplo, 2012-11-11T23:59:59Z.
g:DomainName
String
Nome da conta.
g:MFAPresent
Boolean
Indica se deseja obter um token por meio da autenticação MFA.
g:MFAAge
Número
Período de validade de um token obtido através da autenticação MFA. Esta condição deve ser usada em conjunto com g:MFAPresent.
g:ProjectName
String
Nome do projeto.
g:ServiceName
String
Nome do serviço.
g:UserId
String
ID do usuário do IAM.
g:UserName
String
Nome de usuário do IAM.
- As chaves de condição global (começando com g:) se aplicam a todas as operações. O IAM fornece chaves de condição globais communs e chaves de condição globais especiais.
- Operador
Um operador (consulte Operadores), uma chave de condição e um valor de condição para formar uma declaração de condição completa. Uma política só entra em vigor quando suas condições de solicitação são atendidas. O sufixo IfExists do operador indica que uma política entra em vigor se um valor de solicitação estiver vazio ou atender à condição especificada. Por exemplo, se o operador StringEqualsIfExists for selecionado para uma política, a política entrará em vigor se um valor de solicitação estiver vazio ou igual ao valor da condição especificada.
Tabela 3 Operadores (Os operadores de string não diferenciam maiúsculas e minúsculas, a menos que especificado de outra forma.) Operador
Tipo
Descrição
StringEquals
String
(Diferencia maiúsculas e minúsculas) O valor da solicitação é o mesmo que o valor da condição.
StringNotEquals
String
(Diferencia maiúsculas e minúsculas) O valor da solicitação é diferente do valor da condição.
StringEqualsIgnoreCase
String
O valor da solicitação é o mesmo que o valor da condição.
StringNotEqualsIgnoreCase
String
O valor da solicitação é diferente do valor da condição.
StringLike
String
O valor da solicitação contém o valor da condição.
StringNotLike
String
O valor da solicitação não contém o valor da condição.
StringStartWith
String
O valor da solicitação começa com o valor da condição.
StringEndWith
String
O valor da solicitação termina com o valor da condição.
StringNotStartWith
String
O valor da solicitação não começa com o valor da condição.
StringNotEndWith
String
O valor da solicitação não termina com o valor da condição.
StringEqualsAnyOf
String
(Diferencia maiúsculas e minúsculas) O valor da solicitação é o mesmo que qualquer um dos valores da condição configurados.
StringNotEqualsAnyOf
String
(Diferencia maiúsculas e minúsculas) O valor da solicitação é diferente de todos os valores de condição configurados.
StringEqualsIgnoreCaseAnyOf
String
O valor da solicitação é o mesmo que qualquer um dos valores da condição configurados.
StringNotEqualsIgnoreCaseAnyOf
String
O valor da solicitação é diferente de todos os valores de condição configurados.
StringLikeAnyOf
String
O valor da solicitação contém qualquer um dos valores da condição configurados.
StringNotLikeAnyOf
String
O valor da solicitação não contém qualquer um dos valores da condição configurados.
StringStartWithAnyOf
String
O valor da solicitação começa com qualquer um dos valores da condição configurados.
StringEndWithAnyOf
String
O valor da solicitação termina com qualquer um dos valores da condição configurados.
StringNotStartWithAnyOf
String
O valor da solicitação não começa com qualquer um dos valores da condição configurados.
StringNotEndWithAnyOf
String
O valor da solicitação não termina com qualquer um dos valores da condição configurados.
NumberEquals
Número
O valor da solicitação é igual ao valor da condição.
NumberNotEquals
Número
O valor da solicitação não é igual ao valor da condição.
NumberLessThan
Número
O valor da solicitação é menor que o valor da condição.
NumberLessThanEquals
Número
O valor da solicitação é menor que ou igual ao valor da condição.
NumberGreaterThan
Número
O valor da solicitação é maior que o valor da condição.
NumberGreaterThanEquals
Número
O valor da solicitação é maior que ou igual ao valor da condição.
NumberEqualsAnyOf
Número
O valor da solicitação é igual a qualquer um dos valores da condição configurados.
NumberNotEqualsAnyOf
Número
O valor da solicitação não é igual a qualquer um dos valores da condição configurados.
DateLessThan
Tempo
O valor da solicitação é anterior ao valor da condição.
DateLessThanEquals
Tempo
O valor da solicitação é anterior ou igual ao valor da condição.
DateGreaterThan
Tempo
O valor da solicitação é posterior ao valor da condição.
DateGreaterThanEquals
Tempo
O valor da solicitação é posterior ou igual ao valor da condição.
Bool
Boolean
O valor da solicitação é igual ao valor da condição.
IpAddress
Endereço IP
O valor da solicitação está dentro do intervalo de endereços IP definido no valor da condição.
NotIpAddress
Endereço IP
O valor da solicitação está fora do intervalo de endereços IP definido no valor da condição.
IsNullOrEmpty
Nulo
O valor da solicitação é null ou uma string vazia.
IsNull
Nulo
O valor da solicitação é null.
IsNotNull
Nulo
O valor da solicitação não é null.