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
| 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. |
| Parâmetro | Obrigatório | Tipo | Descrição |
|---|---|---|---|
| Sim | Object | Informações de autenticação. |
| Parâmetro | Obrigatório | Tipo | Descrição |
|---|---|---|---|
| methods | Sim | Array of strings | Método de autenticação. Defina este parâmetro como ["assume_role"]. |
| Sim | Object | Detalhes sobre a conta e a agência delegante. | |
| 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. |
| 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. |
| Não | Object | Informações do usuário empresarial da parte delegante. |
| 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. |
| 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. |
| Sim | Array of objects | Declaração da política. Uma política pode conter um máximo de oito declarações. |
| 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:
|
| 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:
|
| 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:
|
Parâmetros de resposta
| Parâmetro | Tipo | Descrição |
|---|---|---|
| Object | Resultado de autenticação. |
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