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/ Modificação de uma política personalizada para serviços de nuvem
Atualizado em 2023-02-16 GMT+08:00

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

Função

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

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

URI

PATCH /v3.0/OS-ROLE/roles/{role_id}

Tabela 1 Parâmetros de URI

Parâmetro

Obrigatoriedade

Tipo

Descrição

role_id

Sim

String

ID de política personalizada. Para obter detalhes sobre como obter uma ID de política personalizada, consulte ID de política personalizada.

Parâmetros de solicitação

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

Parâmetro

Obrigatoriedade

Tipo

Descrição

Content-Type

Sim

String

Preencha application/json;charset=utf8 neste campo.

X-Auth-Token

Sim

String

Consulte Ações.

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

Parâmetro

Obrigatoriedade

Tipo

Descrição

role

Sim

Object

Informações de políticas personalizadas.

Tabela 4 role

Parâmetro

Obrigatoriedade

Tipo

Descrição

display_name

Sim

String

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

type

Sim

String

Modo de exibição.

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

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 5 role.policy

Parâmetro

Obrigatoriedade

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. Uma política pode conter no máximo oito declarações.

Tabela 6 role.policy.Statement

Parâmetro

Obrigatoriedade

Tipo

Descrição

Action

Sim

Array of strings

Permissão de operação específica em um recurso. São permitidas no máximo 100 ações.

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 instruções Allow e Deny forem encontradas em uma política, a autenticação começará a partir das instruçõ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. São permitidas no máximo 10 condições. Para obter detalhes sobre os parâmetros de condição, 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. A matriz pode conter um máximo de 10 cadeias de caracteres de recurso e cada cadeia não pode exceder 128 caracteres.

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 7 Parâmetros no corpo da resposta

Parâmetro

Tipo

Descrição

role

Object

Informações de políticas personalizadas.

Tabela 8 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 específicos da região
  • 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.

created_time

String

Hora em que a política personalizada foi criada.

references

String

Número de referências.

Tabela 10 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 no máximo oito declarações.

Tabela 11 role.policy.Statement

Parâmetro

Obrigatoriedade

Tipo

Descrição

Action

Sim

Array of strings

Permissão de operação específica em um recurso. São permitidas no máximo 100 ações.

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 instruções Allow e Deny forem encontradas em uma política, a autenticação começará a partir das instruçõ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. São permitidas no máximo 10 condições. Para obter detalhes sobre os parâmetros de condição, 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. A matriz pode conter um máximo de 10 cadeias de caracteres de recurso e cada cadeia não pode exceder 128 caracteres.

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

PATCH https://iam.myhuaweicloud.com/v3.0/OS-ROLE/roles/{role_id}
{
    "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: 200

A solicitação foi bem-sucedida.

{
    "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": "d78cbac186b744899480f25bd0...",
        "type": "AX",
        "id": "93879fd90f1046f69e6e0b31c94d2615",
        "name": "custom_d78cbac186b744899480f25bd022f468_1"
    }
}

Códigos de status

Código de status

Descrição

200

A solicitação foi bem-sucedida.

400

Parâmetros inválidos.

401

Autenticação falhou.

403

Acesso negado.

500

Erro de servidor interno.

Códigos de erro

Nenhum