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