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