Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2023-11-25 GMT+08:00

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).

Figura 1 Estrutura da política

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.

Tabela 1 Parâmetros da política

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.

  • Allow
  • Deny
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:

  • obs:*:*:bucket:*: Todos os buckets OBS.
  • obs:*:*:object:my-bucket/my-object/*: Todos os objetos no diretório my-object do bucket my-bucket.
  • 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.

  • 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.