Gerencie o Security Token Service (STS) com o Alibaba Cloud CLI. Este tópico usa a operação de API AssumeRole como exemplo para demonstrar como chamar a OpenAPI do STS pela CLI.
Pré-requisitos
Familiarize-se com os seguintes conceitos:
Etapa 1: Instale o Alibaba Cloud CLI
Instale o Alibaba Cloud CLI. Há pacotes disponíveis para Windows, Linux e macOS.
Windows: Install Alibaba Cloud CLI on Windows.
Você também pode usar o Cloud Shell para depurar comandos do Alibaba Cloud CLI. Para mais informações, consulte What is Cloud Shell?.
Etapa 2: Configure o Alibaba Cloud CLI
Somente um usuário RAM ou uma função RAM assumida podem chamar a operação de API AssumeRole. Não é possível executar essa operação com uma conta Alibaba Cloud (conta raiz). O exemplo neste tópico usa um usuário RAM.
Configure suas credenciais e um ID de região antes de começar. O Alibaba Cloud CLI oferece suporte a vários tipos de credenciais. Para mais informações, consulte Configure and manage credentials. Este exemplo usa um par de AccessKey.
Crie um usuário RAM e um par de AccessKey para usar na configuração. Para mais informações, consulte Create a RAM user e Create an AccessKey.
Conceda permissões ao usuário RAM. Neste exemplo, conceda permissão para chamar a operação de API
AssumeRoledo STS anexando a política AliyunSTSAssumeRoleAccess. Para mais informações, consulte Manage RAM user permissions.-
Obtenha o ID de uma região disponível. O Alibaba Cloud CLI envia solicitações de API para a região especificada. Para obter uma lista das regiões do STS disponíveis, consulte Endpoints.
NotaAo usar o Alibaba Cloud CLI, adicione a opção
--regiona um comando para especificar a região da solicitação. Essa opção substitui a região definida no seu perfil e nas variáveis de ambiente. Para mais informações, consulte Command-line options. Use o par de AccessKey do usuário RAM para configurar as credenciais. Nomeie o perfil de configuração como AkProfile. Para mais informações, consulte Configure and manage credentials.
Etapa 3: Crie uma função RAM
O Alibaba Cloud Resource Name (ARN) da função, especificado pelo parâmetro RoleArn, é obrigatório para chamar a operação de API AssumeRole. Para obter o ARN, crie uma função RAM que confie em uma conta Alibaba Cloud.
Neste exemplo, use o usuário RAM criado na Step 2: Configure Alibaba Cloud CLI para assumir essa função. Portanto, defina a conta Alibaba Cloud confiável com o ID da conta à qual o usuário RAM da Step 2: Configure Alibaba Cloud CLI pertence. Para mais informações, consulte Create a RAM role for a trusted Alibaba Cloud account.
Modifique a política de confiança da função RAM para especificar quais usuários RAM podem assumir a função. Para mais informações, consulte Modify the trust policy of a RAM role.
Etapa 4: Gerar um exemplo de comando da CLI
No OpenAPI Explorer, acesse a página de depuração do AssumeRole.
Na aba Parameters, insira os parâmetros da solicitação. Em seguida, clique em CLI Example para visualizar o comando gerado.
-
Execute o comando no Cloud Shell ou copie o exemplo de comando.
Clique em Run in Cloud Shell
para abrir o Cloud Shell e depurar o comando rapidamente.-
Clique em Repeat
para copiar o comando para a área de transferência. Depois, cole-o no shell local para execução.NotaAo copiar o comando para um shell local para depuração, verifique se o formato dos parâmetros está correto. Para mais informações sobre os parâmetros de comando do Alibaba Cloud CLI, consulte Understand command parameters.
Por padrão, o OpenAPI Explorer adiciona a opção
--regionao comando gerado. Ao executar o comando localmente, essa opção substitui as configurações de região do perfil padrão e das variáveis de ambiente. Mantenha ou remova essa opção conforme necessário.
Etapa 5: Chamar APIs do STS
Exemplo 1: Listar APIs do STS disponíveis
Use a opção --help para listar as operações de API do STS disponíveis. Você também pode visualizá-las na API overview.
-
Execute o comando.
aliyun sts --help -
A saída retornada será semelhante ao exemplo abaixo.
Usage: aliyun sts <ApiName> --parameter1 value1 --parameter2 value2 ... Product: Sts (Security Token Service) Version: 2015-04-01 Available Api List: AssumeRole Calls the AssumeRole operation to obtain temporary security credentials (an STS Token) to assume a RAM role. AssumeRoleWithOIDC [Anonymous] Calls the AssumeRoleWithOIDC operation to obtain temporary security credentials (an STS Token) for a RAM role during OIDC-based role SSO. AssumeRoleWithSAML [Anonymous] Calls the AssumeRoleWithSAML operation to obtain temporary security credentials (an STS Token) for a RAM role during SAML-based role SSO. GetCallerIdentity Calls the GetCallerIdentity operation to obtain information about the current caller's identity.
Exemplo 2: Assumir uma função RAM
Chame AssumeRole para obter credenciais de segurança temporárias para uma função RAM.
-
Execute o comando.
NotaPara obter ajuda sobre os parâmetros do comando:
Execute o comando
aliyun sts AssumeRole --helppara obter sugestões de parâmetros.Consulte o tópico AssumeRole para descrições detalhadas dos parâmetros.
aliyun sts AssumeRole \ --DurationSeconds 3600 \ --Policy '{"Statement": [{"Action": ["*"],"Effect": "Allow","Resource": ["*"]}],"Version":"1"}' \ --RoleSessionName alice \ --RoleArn 'acs:ram::123456789012****:role/adminrole' \ --ExternalId abcd1234 -
A saída abaixo é um exemplo. O valor de
SecurityTokencorresponde à credencial de segurança temporária.{ "RequestId": "6894B13B-6D71-4EF5-88FA-F32781734A7F", "AssumedRoleUser": { "AssumedRoleId": "34458433936495****:alice", "Arn": "acs:ram::123456789012****:role/adminrole/alice" }, "Credentials": { "SecurityToken": "********", "Expiration": "2015-04-09T11:52:19Z", "AccessKeySecret": "wyLTSmsyPGP1ohvvw8xYgB29dlGI8KMiH2pK****", "AccessKeyId": "STS.L4aBSCSJVMuKg5U1****" } }NotaSe ocorrer um erro ao chamar uma operação de API do STS, verifique o código de erro retornado para confirmar se os parâmetros e valores da solicitação são válidos.
Use o ID da solicitação obtido na resposta ou na mensagem de erro do SDK com o OpenAPI Troubleshoot para diagnosticar o problema.