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.
Computação
Elastic Cloud Server
Bare Metal Server
Auto Scaling
Image Management Service
Dedicated Host
FunctionGraph
Cloud Phone Host
Huawei Cloud EulerOS
Redes
Virtual Private Cloud
Elastic IP
Elastic Load Balance
NAT Gateway
Direct Connect
Virtual Private Network
VPC Endpoint
Cloud Connect
Enterprise Router
Enterprise Switch
Global Accelerator
Gerenciamento e governança
Cloud Eye
Identity and Access Management
Cloud Trace Service
Resource Formation Service
Tag Management Service
Log Tank Service
Config
Resource Access Manager
Simple Message Notification
Application Performance Management
Application Operations Management
Organizations
Optimization Advisor
Cloud Operations Center
Resource Governance Center
Migração
Server Migration Service
Object Storage Migration Service
Cloud Data Migration
Migration Center
Cloud Ecosystem
KooGallery
Partner Center
User Support
My Account
Billing Center
Cost Center
Resource Center
Enterprise Management
Service Tickets
HUAWEI CLOUD (International) FAQs
ICP Filing
Support Plans
My Credentials
Customer Operation Capabilities
Partner Support Plans
Professional Services
Análises
MapReduce Service
Data Lake Insight
CloudTable Service
Cloud Search Service
Data Lake Visualization
Data Ingestion Service
GaussDB(DWS)
DataArts Studio
IoT
IoT Device Access
Outros
Product Pricing Details
System Permissions
Console Quick Start
Common FAQs
Instructions for Associating with a HUAWEI CLOUD Partner
Message Center
Segurança e conformidade
Security Technologies and Applications
Web Application Firewall
Host Security Service
Cloud Firewall
SecMaster
Anti-DDoS Service
Data Encryption Workshop
Database Security Service
Cloud Bastion Host
Data Security Center
Cloud Certificate Manager
Blockchain
Blockchain Service
Serviços de mídia
Media Processing Center
Video On Demand
Live
SparkRTC
Armazenamento
Object Storage Service
Elastic Volume Service
Cloud Backup and Recovery
Cloud Server Backup Service
Storage Disaster Recovery Service
Scalable File Service
Volume Backup Service
Data Express Service
Dedicated Distributed Storage Service
Containers
Cloud Container Engine
SoftWare Repository for Container
Application Service Mesh
Ubiquitous Cloud Native Service
Cloud Container Instance
Bancos de dados
Relational Database Service
Document Database Service
Data Admin Service
Data Replication Service
GeminiDB
GaussDB
Distributed Database Middleware
Database and Application Migration UGO
TaurusDB
Middleware
Distributed Cache Service
API Gateway
Distributed Message Service for Kafka
Distributed Message Service for RabbitMQ
Distributed Message Service for RocketMQ
Cloud Service Engine
EventGrid
Dedicated Cloud
Dedicated Computing Cluster
Aplicações de negócios
ROMA Connect
Message & SMS
Domain Name Service
Edge Data Center Management
Meeting
AI
Face Recognition Service
Graph Engine Service
Content Moderation
Image Recognition
Data Lake Factory
Optical Character Recognition
ModelArts
ImageSearch
Conversational Bot Service
Speech Interaction Service
Huawei HiLens
Developer Tools
SDK Developer Guide
API Request Signing Guide
Terraform
Koo Command Line Interface
Distribuição de conteúdo e computação de borda
Content Delivery Network
Intelligent EdgeFabric
CloudPond
Soluções
SAP Cloud
High Performance Computing
Serviços para desenvolvedore
ServiceStage
CodeArts
CodeArts PerfTest
CodeArts Req
CodeArts Pipeline
CodeArts Build
CodeArts Deploy
CodeArts Artifact
CodeArts TestPlan
CodeArts Check
Cloud Application Engine
MacroVerse aPaaS
KooPhone
KooDrive

Sintaxe da política

Atualizado em 2024-08-31 GMT+08:00

O seguinte usa 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": [
                        "specialCharacter"
                    ]
                },
                "Bool": {
                    "g:MFAPresent": [
                        "true"
                    ]
                }
            },
            "Resource": [
                "obs:*:*:bucket:*"
            ]
        }
    ]
}

Estrutura da política

Uma política consiste em uma versão e uma ou mais instruções (indicando ações diferentes).

Figura 1 Estrutura da política

Parâmetros de política

Os parâmetros de 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 mais detalhes, consulte Casos de uso de políticas personalizadas.

Tabela 1 Parâmetros de política

Parâmetro

Descrição

Valor

Version

Versão da política.

1.1: indica o controle de acesso baseado em políticas.

Statement

Effect

Determina se permitir ou negar as operações definidas na ação.

  • Allow
  • Deny
NOTA:

Se uma ação tiver efeitos Allow e Deny, o efeito Deny terá precedência.

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 API, por exemplo, veja Ações suportadas de 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 terá efeito somente quando todas as condições forem atendidas.

Exemplo:

StringEndWithIfExists":{"g:UserName":["specialCharacter"]}: a instrução é válida para usuários cujos nomes terminam com specialCharacter.

Resource

Recursos nos quais a política entra em vigor.

Formato: Service name:Region:Account ID:Resource type:Resource path. Caracteres curinga (*) são suportados. Para obter detalhes sobre serviços de nuvem que suportam autorização em nível de recurso e tipos de recursos suportados, consulte Serviços de nuvem que suportam a autorização em nível de recurso usando o IAM.

Exemplo:

  • obs:*:*:bucket:*: todos os buckets do 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 common global condition keys e special global condition keys.
      • Chaves de condição global comuns: 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 mais detalhes, consulte Tabela 2.
      • Chaves de condição global especiais: o IAM obtém informações de condição dos serviços de nuvem para autenticação. Apenas determinados serviços de nuvem suportam chaves de condição global especiais.
    • 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 de OBS.
    Tabela 2 Chaves de condição global comuns

    Chave de condição global

    Tipo

    Descrição

    g:CurrentTime

    Time

    Hora em que uma solicitação de autenticação é recebida. A hora está no formato ISO 8601, por exemplo, 2012-11-11T23:59:59Z. (Veja um exemplo de política que usa essa chave de condição)

    g:DomainName

    String

    Nome da conta do solicitante. (Veja um exemplo de política que usa essa chave de condição)

    g:MFAPresent

    Boolean

    Se deseja obter um token por meio da autenticação MFA. (Veja um exemplo de política que usa essa chave de condição)

    g:MFAAge

    Number

    Período de validade de um token obtido por meio da autenticação MFA. Esta condição deve ser usada em conjunto com g:MFAPresent. (Veja um exemplo de política que usa essa chave de condição)

    g:ProjectName

    String

    Nome do projeto. (Veja um exemplo de política que usa essa chave de condição)

    g:ServiceName

    String

    Nome do serviço. (Veja um exemplo de política que usa essa chave de condição)

    g:UserId

    String

    ID do usuário do IAM. (Veja um exemplo de política que usa essa chave de condição)

    g:UserName

    String

    Nome de usuário do IAM. (Veja um exemplo de política que usa essa chave de condição)

    Tabela 3 Chaves de condição global especiais

    Chave de condição global

    Tipo

    Descrição

    g:SourceIp

    IP Address

    Endereço IP do usuário que envia uma solicitação.

    g:SourceVpc

    String

    ID de VPC do usuário que envia uma solicitação.

    g:SourceVpce

    String

    ID do ponto de extremidade da VPC do usuário que está enviando uma solicitação.

    g:TagKeys

    String

    Chave de tag de recurso.

    g:ResourceTag/{TagKey}

    String

    Valor da chave da tag de recurso.

    1. g:CurrentTime

      Exemplo: a política a seguir concede permissão para criar funções personalizadas no IAM de 1º de março de 2023, 08:00 GMT+08:00 a 30 de março de 2023, 08:00 GMT+08:00. O valor da chave de condição g:CurrentTime está no formato UTC.

      {
               "Version": "1.1",
               "Statement": [{
                        "Effect": "Allow",
                        "Action": ["iam:roles:createRoles"],
                        "Condition": {
                                "DateGreaterThan": {
                                         "g:CurrentTime": ["2023-03-01T00:00:00Z"]
                                },
                                "DateLessThan": {
                                         "g:CurrentTime": ["2023-03-30T00:00:00Z"]
                                }
                        }
               }]
      }
    2. g: DomainName

      Exemplo: a política a seguir só permite que o usuário zhangsan crie funções personalizadas no IAM.

      {
               "Version": "1.1",
               "Statement": [{
                        "Effect": "Allow",
                        "Action": ["iam:roles:createRoles"],
                        "Condition": {
                                "StringEquals": {
                                         "g:DomainName": ["zhangsan"]
                                }
                        }
               }]
      }
    3. g:MFAPresent

      Exemplo: a política a seguir permite que os usuários que obtêm credenciais usando a MFA criem funções personalizadas no IAM.

      {
               "Version": "1.1",
               "Statement": [{
                        "Effect": "Allow",
                        "Action": ["iam:roles:createRoles"],
                        "Condition": {
                                "Bool": {
                                         "g:MFAPresent": ["true"]
                                }
                        }
               }]
      }
    4. g:MFAAge

      Exemplo: a política a seguir permite que os usuários que obtêm credenciais usando a MFA com o período válido maior que 900s criem funções personalizadas no IAM.

      {
               "Version": "1.1",
               "Statement": [{
                        "Effect": "Allow",
                        "Action": ["iam:roles:createRoles"],
                        "Condition": {
                                " NumberGreaterThanEquals ": {
                                         "g:MFAAge": ["900"]
                                }
                        }
               }]
      }
    5. g:ProjectName

      Exemplo: a política a seguir permite que os usuários que obtêm credenciais em CN North-Beijing criem funções personalizadas no IAM.

      {
               "Version": "1.1",
               "Statement": [{
                        "Effect": "Allow",
                        "Action": ["iam:roles:createRoles"],
                        "Condition": {
                                " StringEquals ": {
                                         "g: ProjectName ": ["cn-north-4"]
                                }
                        }
               }]
      }
    6. g: ServiceName

      Exemplo: a política a seguir permite que os usuários acessem todos os serviços, exceto o IAM. O valor dessa chave de condição corresponde ao Service Name na solicitação de autenticação.

      {
               "Version": "1.1",
               "Statement": [{
                        "Action": [
                                "*:*:*"
                        ],
                        "Effect": "Allow",
                        "Condition": {
                                "StringNotEqualsIgnoreCase": {
                                         "g:ServiceName": [
                                                  "iam"
                                         ]
                                }
                        }
               }]
      }
    7. g: UserId

      Exemplo: a política a seguir só permite o usuário cujo ID é xxxxxxxxxxx… para criar funções personalizadas no IAM.

      {
               "Version": "1.1",
               "Statement": [{
                        "Effect": "Allow",
                        "Action": ["iam:roles:createRoles"],
                        "Condition": {
                                "StringEquals": {
                                         "g: UserId ": ["xxxxxxxxxxx…"]
                                }
                        }
               }]
      }
    8. g: UserName

      Exemplo: a política a seguir só permite que o usuário lisi crie funções personalizadas no IAM.

      {
               "Version": "1.1",
               "Statement": [{
                        "Effect": "Allow",
                        "Action": ["iam:roles:createRoles"],
                        "Condition": {
                                "StringEquals": {
                                         "g: UserName ": ["lisi"]
                                }
                        }
               }]
      }
    • Chaves de condição multivalorada
      1. ForAllValues: testa se o valor de cada membro do conjunto de solicitações é um subconjunto do conjunto de chaves de condição. A condição retorna true se cada valor de chave na solicitação corresponder a pelo menos um valor na política.
        {
            "Version": "1.1",
            "Statement": [
                {
                    "Effect": "Allow",
                    "Action": [
                        "ims:images:share"
                    ],
                    "Condition": {
                        "ForAllValues:StringEquals": {
                            "ims:TargetOrgPaths": [
                                "orgPath1",
                                "orgPath2",
                                "orgPath3"
                            ]
                        }
                    }
                }
            ]
        }

        Esta política mostra como usar o qualificador ForAllValues com o operador de condição StringEquals. A condição determina se o compartilhamento deve ser permitido com as contas de membros no caminho de organização orgPath1, orgPath2 ou orgPath3.

        Suponha que um usuário faça uma solicitação para compartilhar o IMS com as contas de membros nos caminhos de organização orgPath1 e orgPath3. A solicitação é permitida porque os atributos solicitados pelo usuário correspondem todos aos valores especificados na política.

        Se a solicitação do usuário incluir orgPath1, orgPath2, orgPath3 e orgPath4, a solicitação falhará porque orgPath4 não está incluído no operador de condição.

      2. ForAnyValue: testa se pelo menos um membro do conjunto de valores de solicitação corresponde a pelo menos um membro do conjunto de valores de chave de condição. A condição retornará true se qualquer um dos valores de chave na solicitação corresponder a qualquer um dos valores de condição na política. Para nenhuma chave correspondente ou um conjunto de dados nulo, a condição retorna false.
        {
            "Version": "1.1",
            "Statement": [
                {
                    "Effect": "Allow",
                    "Action": [
                        "ims:images:share"
                    ],
                    "Condition": {
                        "ForAnyValue:StringEquals": {
                            "ims:TargetOrgPaths": [
                                "orgPath1",
                                "orgPath2",
                                "orgPath3"
                            ]
                        }
                    }
                }
            ]
        }

        Esta política mostra como usar o qualificador ForAnyValue com o operador de condição StringEquals. A condição determina se o compartilhamento deve ser permitido com as contas de membros no caminho de organização orgPath1, orgPath2 ou orgPath3.

        Suponha que um usuário faça uma solicitação para compartilhar o IMS com as contas de membros no caminho da organização orgPath1 ou orgPath4. A solicitação é permitida porque os atributos solicitados pelo usuário correspondem todos aos valores especificados na política.

        Se o usuário iniciar uma solicitação para compartilhar o IMS com as contas de membros no caminho da organização orgPath4 ou orgPath5, a solicitação falhará porque orgPath4 e orgPath5 não estão incluídos no operador de condição.

    Operadores de condição

    Figura 2 Operadores de condição
    1. Se um único operador de condição incluir vários valores para uma chave, esse operador de condição será avaliado usando um OR lógico. A condição retornará true se qualquer um dos valores de chave na solicitação corresponder a qualquer um dos valores de condição na política.

      Para operadores de condição de correspondência negada (como StringNotEquals), o valor da solicitação não pode corresponder a nenhum dos valores de condição com base nos operadores de condição.

    2. Se a política tiver vários operadores de condição ou várias chaves anexadas a um único operador de condição, as condições serão avaliadas usando um AND lógico.
  • Operador

    Um operador, uma chave de condição e um valor de condição juntos constituem uma instruçã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 o valor da solicitação estiver vazio ou igual ao valor da condição especificada. Os operadores são operadores de cadeia de caracteres. Eles não diferenciam maiúsculas de minúsculas, a menos que especificado de outra forma.

    • Operadores de condição de cadeia de caracteres
      Tabela 4 Operadores de condição de cadeia de caracteres

      Tipo

      Operador

      Descrição

      String

      StringEquals

      Correspondência exata, distinção entre maiúsculas e minúsculas

      StringNotEquals

      Correspondência negada, distinção entre maiúsculas e minúsculas

      StringEqualsIgnoreCase

      Correspondência exata

      StringNotEqualsIgnoreCase

      Correspondência negada

      StringMatch

      Correspondência com distinção entre maiúsculas e minúsculas. Os valores são expressões regulares que suportam apenas curingas de correspondência de vários caracteres (*) e curingas de correspondência de um único caractere (?).

      StringNotMatch

      Correspondência negada com distinção entre maiúsculas e minúsculas. Os valores são expressões regulares que suportam apenas curingas de correspondência de vários caracteres (*) e curingas de correspondência de um único caractere (?).

      Por exemplo, a instrução a seguir contém um elemento de condição que usa "g:DomainName" para especificar que o principal cujo nome de domínio é "ZhangSan" pode obter o conteúdo e os metadados do objeto.

      {
          "Version": "1.1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "obs:object:GetObject"
                  ],
                  "Condition": {
                      "StringEquals": {
                          "g:DomainName": [
                              "ZhangSan"
                          ]
                      }
                  }
              }
          ]
      }
    • Operadores de condição numérica
      Tabela 5 Operadores de condição numérica

      Tipo

      Operador

      Descrição

      Number

      NumberEquals

      Correspondência

      NumberNotEquals

      Correspondência negada

      NumberLessThan

      Correspondência "menor que"

      NumberLessThanEquals

      Correspondência "menor que ou igual a"

      NumberGreaterThan

      Correspondência "maior que"

      NumberGreaterThanEquals

      Correspondência "maior que ou igual a"

      Por exemplo, a instrução a seguir contém um elemento de condição que usa o operador de condição "NumericLessThanEquals" com a chave "obs:max-keys" para especificar que o solicitante pode listar até 10 objetos em "example_bucket" de cada vez.

      {
          "Version": "1.1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "obs:bucket:ListBucket"
                  ],
                  "Resource": [
                      "OBS:*:*:bucket:example_bucket"
                  ],
                  "Condition": {
                      "NumberLessThanEquals": {
                          "obs:max-keys": [
                              "10"
                          ]
                      }
                  }
              }
          ]
      }
    • Operadores de condição de data
      Tabela 6 Operadores de condição de data

      Tipo

      Operador

      Descrição

      Date

      DateLessThan

      Correspondência antes de uma data e hora específicas

      DateLessThanEquals

      Correspondência em ou antes de uma data e hora específicas

      DateGreaterThan

      Correspondência após uma data e hora específicas

      DateGreaterThanEquals

      Correspondência em ou após uma data e hora específicas

      Por exemplo, a instrução a seguir contém um elemento de condição que usa o operador de condição "DateLessThan" com a chave "g:CurrentTime" para especificar que o solicitante só pode criar buckets antes de 1º de agosto de 2022.

      {
          "Version": "1.1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "obs:bucket:CreateBucket"
                  ],
                  "Condition": {
                      "DateLessThan": {
                          "g:CurrentTime": [
                              "2022-08-01T00:00:00Z"
                          ]
                      }
                  }
              }
          ]
      }
    • Operadores de condição Bool
      Tabela 7 Operadores de condição Bool

      Tipo

      Operador

      Descrição

      Bool

      Bool

      As condições Boolean permitem que você construa elementos de condição que restringem o acesso com base na comparação de uma chave com "true" ou "false".

      Por exemplo, essa política baseada em identidade usa o operador de condição Bool com a chave "g:MFAPresent" para permitir que apenas solicitantes com MFA ativada possam modificar as chaves de acesso permanentes especificadas.

      {
          "Version": "1.1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "iam:credentials:updateCredential"
                  ],
                  "Condition": {
                      "Bool": {
                          "g:MFAPresent": [
                              "true"
                          ]
                      }
                  }
              }
          ]
      }
    • Operadores de condição Null
      Tabela 8 Operadores de condição Null

      Tipo

      Operador

      Descrição

      Null

      Null

      Use um operador de condição Null para verificar se uma chave de condição está ausente no momento da autorização. Na instrução de política, use "true" (a chave não existe ou é nula) ou "false" (a chave existe e seu valor não é nulo).

      Por exemplo, você pode usar esse operador de condição para especificar que somente solicitações de criação de buckets de VPCs sejam permitidas.

      {
          "Version": "1.1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      " obs:bucket:CreateBucket"
                  ],
                  "Condition": {
                      "Null": {
                          "obs:SourceVpc": [
                              "false"
                          ]
                      }
                  }
              }
          ]
      }
    • Sufixo do operador IfExists

      Você pode adicionar "IfExists" ao final de qualquer nome de operador de condição, exceto "Null condition", por exemplo, StringEqualsIfExists. Se a chave de política estiver presente no contexto da solicitação, processe a chave conforme especificado na política. Se a chave não estiver presente, avalie o elemento de condição como true.

Usamos cookies para aprimorar nosso site e sua experiência. Ao continuar a navegar em nosso site, você aceita nossa política de cookies. Saiba mais

Feedback

Feedback

Feedback

0/500

Conteúdo selecionado

Envie o conteúdo selecionado com o feedback