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.
Central de ajuda/ Identity and Access Management/ Referência de API/ API/ Gerenciamento de políticas personalizadas/ Criação de uma política personalizada para serviços de nuvem
Atualizado em 2024-08-31 GMT+08:00

Criação de uma política personalizada para serviços de nuvem

Função

Essa API é fornecida para que o administrador crie uma política personalizada para serviços de nuvem.

A API pode ser chamada usando o ponto de extremidade global e pontos de extremidade da região específica. Para pontos de extremidade do IAM, consulte Regiões e pontos de extremidade.

URI

POST /v3.0/OS-ROLE/roles

Parâmetros de solicitação

Tabela 1 Parâmetros no cabeçalho da solicitação

Parâmetro

Obrigatório

Tipo

Descrição

Content-Type

Sim

String

Preencha application/json;charset=utf8 nesse campo.

X-Auth-Token

Sim

String

Token de acesso emitido para um usuário para suportar sua identidade e permissões.

Para obter detalhes sobre as permissões exigidas pelo token, consulte Ações.

Tabela 2 Parâmetros no corpo da solicitação

Parâmetro

Obrigatório

Tipo

Descrição

role

Sim

Object

Informações de políticas personalizadas.

Tabela 3 role

Parâmetro

Obrigatório

Tipo

Descrição

display_name

Sim

String

Nome de exibição da política personalizada.

type

Sim

String

Escopo de aplicação da política personalizada.

  • Serviços globais: AX
  • Projetos da região específica: XA

Defina o modo de exibição de uma política personalizada para AX ou XA.

NOTA:
  • Para atribuir uma política personalizada que contenha operações do OBS a um grupo de usuários, crie duas políticas personalizadas com o escopo definido como serviços globais e projetos de região específica, respectivamente, e outros parâmetros sejam os mesmos e, em seguida, anexe as duas políticas ao grupo de usuários.
  • Para minimizar o escopo de autorização, não inclua ações de outros serviços de nuvem em políticas personalizadas do OBS.

description

Sim

String

Descrição da política personalizada.

description_cn

Não

String

Descrição da política personalizada em chinês.

policy

Sim

Object

Conteúdo da política personalizada.

Tabela 4 role.policy

Parâmetro

Obrigatório

Tipo

Descrição

Version

Sim

String

Versão da política. Ao criar uma política personalizada, defina esse parâmetro como 1.1.

NOTA:
  • 1.0: função definida pelo sistema. Apenas um número limitado de funções de nível de serviço é fornecido para autorização.
  • 1.1: política. Uma política define as permissões necessárias para executar operações em um recurso de nuvem específico sob determinadas condições.

Statement

Sim

Array of objects

Declaração da política.

Tabela 5 role.policy.Statement

Parâmetro

Obrigatório

Tipo

Descrição

Action

Sim

Array of strings

Permissões de operações específicas em um recurso. Para obter detalhes sobre as ações suportadas, consulte "Permissões e ações suportadas" na Referência de API de serviços em nuvem.

NOTA:
  • O formato do valor é Service name:Resource type:Operation, por exemplo, vpc:ports:create.
  • Service name: indica o nome do produto, como ecs, evs ou vpc. Somente letras minúsculas são permitidas. Os tipos de recursos e as operações não diferenciam maiúsculas de minúsculas. Você pode usar um asterisco (*) para representar todas as operações.
  • Uma política personalizada (role.policy.Statement) não pode conter ações de serviços globais e de nível de projeto. Para obter detalhes sobre o escopo das permissões de serviço, consulte Permissões do sistema.

Effect

Sim

String

Efeito da permissão. O valor pode ser Allow ou Deny. Se as declarações Allow e Deny forem encontradas em uma política, a autenticação começará a partir das declarações Deny.

Opções:

  • Allow
  • Deny

Condition

Não

Map<String,Map<String,Array<String>>>

Condições para que a permissão entre em vigor. Para obter detalhes, consulte Criação de uma política personalizada.

NOTA:

Tome a condição na solicitação de exemplo como um exemplo, os valores da chave de condição (obs:prefix) e cadeia (public) devem ser iguais (StringEquals).

 "Condition": {
              "StringEquals": {
                "obs:prefix": [
                  "public"
                ]
              }
            }

Resource

Não

Array of strings

Recursos em nuvem.

NOTA:
  • Formato: ::::. Por exemplo, obs:::bucket:*. Asteriscos são permitidos.
  • O segmento de região pode ser * ou uma região acessível ao usuário. O recurso especificado deve pertencer ao serviço correspondente que realmente existe.

Parâmetros de resposta

Tabela 6 Parâmetros no corpo da resposta

Parâmetro

Tipo

Descrição

role

Object

Informações de políticas personalizadas.

Tabela 7 role

Parâmetro

Tipo

Descrição

catalog

String

Catálogo de serviços.

display_name

String

Nome de exibição da política personalizada.

description

String

Descrição da política personalizada.

links

Object

Link de recurso da política personalizada.

policy

Object

Conteúdo da política personalizada.

description_cn

String

Descrição da política personalizada em chinês.

domain_id

String

ID da conta.

type

String

Modo de exibição.

NOTA:
  • AX: o projeto de serviço global
  • XA: projetos da região específica
  • Defina o modo de exibição de uma política personalizada para AX ou XA.

id

String

ID de política personalizada.

name

String

Nome da política personalizada.

updated_time

String

Hora em que a política personalizada foi atualizada pela última vez.

NOTA:

O valor é uma hora UTC no formato AAAA-MM-DDTHH:mm:ss.ssssssZ, por exemplo, 2023-06-28T08:56:33.710000Z. Para obter detalhes sobre os formatos de data e carimbo de data/hora, consulte ISO-8601.

created_time

String

Hora em que a política personalizada foi criada.

NOTA:

O valor é uma hora UTC no formato AAAA-MM-DDTHH:mm:ss.ssssssZ, por exemplo, 2023-06-28T08:56:33.710000Z. Para obter detalhes sobre os formatos de data e carimbo de data/hora, consulte ISO-8601.

references

String

Número de referências.

Tabela 9 role.policy

Parâmetro

Tipo

Descrição

Version

String

Versão da política.

NOTA:
  • 1.0: função definida pelo sistema. Apenas um número limitado de funções de nível de serviço é fornecido para autorização.
  • 1.1: política. Uma política define as permissões necessárias para executar operações em um recurso de nuvem específico sob determinadas condições.

Statement

Array of objects

Declaração da política. Uma política pode conter um máximo de oito declarações.

Tabela 10 role.policy.Statement

Parâmetro

Obrigatório

Tipo

Descrição

Action

Sim

Array of strings

Permissões de operações específicas em um recurso. Para obter detalhes sobre as ações suportadas, consulte "Permissões e ações suportadas" na Referência de API de serviços em nuvem.

NOTA:
  • O formato do valor é Service name:Resource type:Operation, por exemplo, vpc:ports:create.
  • Service name: indica o nome do produto, como ecs, evs ou vpc. Somente letras minúsculas são permitidas. Os tipos de recursos e as operações não diferenciam maiúsculas de minúsculas. Você pode usar um asterisco (*) para representar todas as operações.

Effect

Sim

String

Efeito da permissão. O valor pode ser Allow ou Deny. Se as declarações Allow e Deny forem encontradas em uma política, a autenticação começará a partir das declarações Deny.

Opções:

  • Allow
  • Deny

Condition

Não

Map<String,Map<String,Array<String>>>

Condições para que a permissão entre em vigor. Para obter detalhes, consulte Criação de uma política personalizada.

NOTA:

Tome a condição na solicitação de exemplo como um exemplo, os valores da chave de condição (obs:prefix) e cadeia (public) devem ser iguais (StringEquals).

 "Condition": {
              "StringEquals": {
                "obs:prefix": [
                  "public"
                ]
              }
            }

Resource

Não

Array of strings

Recursos em nuvem.

NOTA:
  • Formato: ::::. Por exemplo, obs:::bucket:*. Asteriscos são permitidos.
  • O segmento de região pode ser * ou uma região acessível ao usuário. O recurso especificado deve pertencer ao serviço correspondente que realmente existe.

Exemplo de solicitação

Solicitação para criar uma política personalizada chamada IAMCloudServicePolicy que permita que apenas projetos cujos nomes comecem com ap-southeast-1 obtenham informações de ACL sobre todos os buckets.

POST https://iam.myhuaweicloud.com/v3.0/OS-ROLE/roles
{
    "role": {
        "display_name": "IAMCloudServicePolicy",
        "type": "AX",
        "description": "IAMDescription",
        "description_cn": "Description in Chinese",
        "policy": {
            "Version": "1.1",
            "Statement": [
                {
                    "Effect": "Allow",
                    "Action": [
                        "obs:bucket:GetBucketAcl"
                    ],
                    "Condition": {
                        "StringStartWith": {
                            "g:ProjectName": [
                                "ap-southeast-1"
                            ]
                        }
                    },
                    "Resource": [
                        "obs:*:*:bucket:*"
                    ]
                }
            ]
        }
    }
}

Exemplo de resposta

Código de status: 201

A política personalizada foi criada com sucesso.

{
    "role": {
        "catalog": "CUSTOMED",
        "display_name": "IAMCloudServicePolicy",
        "description": "IAMDescription",
        "links": {
            "self": "https://iam.myhuaweicloud.com/v3/roles/93879fd90f1046f69e6e0b31c94d2615"
        },
        "policy": {
            "Version": "1.1",
            "Statement": [
                {
                    "Action": [
                        "obs:bucket:GetBucketAcl"
                    ],
                    "Resource": [
                        "obs:*:*:bucket:*"
                    ],
                    "Effect": "Allow",
                    "Condition": {
                        "StringStartWith": {
                            "g:ProjectName": [
                                "ap-southeast-1"
                            ]
                        }
                    }
                }
            ]
        },
        "description_cn": "Description in Chinese",
        "domain_id": "d78cbac186b744899480f25bd...",
        "type": "AX",
        "id": "93879fd90f1046f69e6e0b31c9...",
        "name": "custom_d78cbac186b744899480f25bd022f468_1"
    }
}

Códigos de status

Código de status

Descrição

201

A política personalizada foi criada com sucesso.

400

Parâmetros inválidos.

401

Falha na autenticação.

403

Acesso negado.

500

Erro de servidor interno.

Códigos de erro

Nenhum