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 chaves de acesso/ Obtenção de uma chave de acesso temporária e de um token de segurança por meio de uma agência
Atualizado em 2024-08-31 GMT+08:00

Obtenção de uma chave de acesso temporária e de um token de segurança por meio de uma agência

Função

Essa API é usada para obter uma chave de acesso temporária e um token de segurança usando uma agência.

Chaves de acesso temporárias e tokens de segurança são emitidos pelo sistema para usuários do IAM e podem ser válidos por 15 minutos a 24 horas. A chave de acesso temporária e o token de segurança seguem o princípio do menor privilégio. Uma chave de acesso temporária deve ser usada junto com um token de segurança, e o campo x-security-token deve ser incluído no cabeçalho da solicitação. Para obter detalhes, consulte Como usar uma AK/SK temporária para assinar solicitações?

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-CREDENTIAL/securitytokens

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 com permissões de Agent Operator.

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

Parâmetro

Obrigatório

Tipo

Descrição

auth

Sim

Object

Informações de autenticação.

Tabela 3 auth

Parâmetro

Obrigatório

Tipo

Descrição

identity

Sim

Object

Parâmetros de autenticação.

Tabela 4 auth.identity

Parâmetro

Obrigatório

Tipo

Descrição

methods

Sim

Array of strings

Método de autenticação. Defina este parâmetro como ["assume_role"].

assume_role

Sim

Object

Detalhes sobre a conta e a agência delegante.

policy

Não

Object

Permissões a serem atribuídas à chave de acesso temporária e ao token de segurança (atualmente, a política só se aplica ao OBS).

As permissões finais da chave de acesso temporária e do token de segurança são todas as permissões atribuídas à agência especificada e definidas neste parâmetro.

Para obter detalhes sobre o formato e a sintaxe das políticas do IAM, consulte Políticas.

Tabela 5 auth.identity.assume_role

Parâmetro

Obrigatório

Tipo

Descrição

agency_name

Sim

String

Nome da agência. Para obter detalhes sobre como obter o nome da agência, consulte Obtenção de informações sobre conta, usuário do IAM, grupo, projeto, região e agência.

domain_id

Não

String

ID da conta da parte delegante. domain_id ou domain_name deve ser definido. É aconselhável especificar domain_id.

domain_name

Não

String

Nome da conta da parte delegante. domain_id ou domain_name deve ser definido. É aconselhável especificar domain_id.

duration_seconds

Não

Integer

Período de validade (em segundos) da AK/SK e do token de segurança. O valor varia de 15 minutos a 24 horas. O valor padrão é 15 minutos.

session_user

Não

Object

Informações do usuário empresarial da parte delegante.

Tabela 6 auth.identity.assume_role.session_user

Parâmetro

Obrigatório

Tipo

Descrição

name

Não

String

Nome de usuário empresarial da parte delegante.

O nome deve ter de 5 a 64 caracteres, contendo apenas letras (diferencia maiúsculas de minúsculas), dígitos, espaços, hifens (-), sublinhados (_) e pontos (.) e deve começar com uma letra.

Tabela 7 auth.identity.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.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 um máximo de oito declarações.

Tabela 8 auth.identity.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: Service name:Region:Account ID:Resource type:Resource path. Caracteres curinga (*) são suportados. Por exemplo, obs:*:*:bucket:* significa todos os buckets do OBS.
  • 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 9 Parâmetros no corpo da resposta

Parâmetro

Tipo

Descrição

credential

Object

Resultado de autenticação.

Tabela 10 credential

Parâmetro

Tipo

Descrição

expires_at

String

Tempo de expiração da chave de acesso e do token de segurança. A resposta é o horário UTC.

access

String

AK.

secret

String

SK.

securitytoken

String

Chave de acesso obtida em texto cifrado.

Exemplo de solicitação

  • Solicitação com session_user especificado (contendo o nome de usuário empresarial da parte delegante)
    POST https://iam.myhuaweicloud.com/v3.0/OS-CREDENTIAL/securitytokens
    {
        "auth": {
            "identity": {
                "methods": [
                    "assume_role"
                ],
                "assume_role": {
                    "domain_name": "IAMDomainA",
                    "agency_name": "IAMAgency",
                    "duration_seconds": 3600,
                    "session_user": {
                        "name": "SessionUserName"
                    }
                }
            }
        }
    }
  • Solicitação com policy definido para controlar as permissões atribuídas à chave de acesso temporária e ao token de segurança obtidos (atualmente, a política se aplica apenas ao OBS). As permissões finais da chave de acesso temporária e do token de segurança são a interseção de permissões atribuídas à agência especificada e definidas em policy.
    POST https://iam.myhuaweicloud.com/v3.0/OS-CREDENTIAL/securitytokens
    {
        "auth": {
            "identity": {
                "methods": [
                    "assume_role"
                ],
                "policy": {
                          "Version": "1.1",
    		       "Statement": [{
    			 "Effect": "allow",
    			 "Action": [
                             "obs:object:*"
                             ],
    			 "Resource": ["obs:*:*:object:*"],
    			 "Condition": {
    			    "StringEquals": {
    				"obs:prefix": ["public"]
    				}
    			}
    		}]
                 },
                "assume_role": {
                    "domain_name": "IAMDomainA",
                    "agency_name": "IAMAgency",
                    "duration_seconds": 3600
    
                }
            }
        }
    }
  • Solicitação sem session_user e policy especificado
    POST https://iam.myhuaweicloud.com/v3.0/OS-CREDENTIAL/securitytokens
    {
        "auth": {
            "identity": {
                "methods": [
                    "assume_role"
                ],
                "assume_role": {
                    "domain_name": "IAMDomainA",
                    "agency_name": "IAMAgency",
                    "duration_seconds": 3600
                }
            }
        }
    }

Exemplo de resposta

Código de status: 201

A solicitação foi bem-sucedida.

As respostas a todas as solicitações anteriores são as mesmas, independentemente de session_user ser especificado ou não. Se session_user for especificado, o token de segurança conterá as informações correspondentes do usuário empresarial.

{
    "credential": {
        "access": "E6DX0TF2ZREQ4Z...",
        "expires_at": "2020-01-08T02:56:19.587000Z",
        "secret": "w9ePum0qdfac39ErLD0UdjofYkqort6Iw....",
        "securitytoken": "gQpjbi1ub3J0aC0..."
    }
}

Códigos de status

Código de status

Descrição

201

A solicitação foi bem-sucedida.

400

Parâmetros inválidos.

401

Falha na autenticação.

403

Acesso negado.

500

Erro de servidor interno.

Códigos de erro

Nenhum