Respostas para perguntas frequentes sobre funções do RAM e tokens STS, incluindo permissões, validade, limites de taxa e segurança.
Por que recebo o erro "You are not authorized..." ao chamar AssumeRole?
A chamada da operação AssumeRole pode retornar este erro:
Error message: You are not authorized to do this action. You should be authorized by RAM.
Causas possíveis:
-
Você está chamando a operação com a conta Alibaba Cloud.
Contas Alibaba Cloud não podem chamar a operação AssumeRole. Use um usuário ou uma função do RAM.
-
A identidade da chamada não tem permissão para assumir a função.
Anexe a política AliyunSTSAssumeRoleAccess ou uma política personalizada à identidade da chamada. A política personalizada deve permitir a ação sts:AssumeRole, conforme mostrado no Exemplo de política abaixo.
-
A política de confiança da função não inclui a identidade da chamada como principal.
Atualize a política de confiança da função de destino para permitir que a identidade da chamada a assuma. Para mais informações, consulte Modify the trust policy of a RAM role.
Quem pode chamar a operação de API AssumeRole?
Somente usuários ou funções do RAM podem chamar a operação AssumeRole para obter credenciais de segurança temporárias para uma função do RAM. Contas Alibaba Cloud não podem executar essa operação.
Quais são os tipos de funções do RAM e quem pode assumi-las?
O RAM oferece os seguintes tipos de função com base no principal:
|
Tipo |
Descrição |
Casos de uso comuns |
|
Conta Alibaba Cloud |
Qualquer identidade na conta (a própria conta, usuários do RAM ou outras funções do RAM) pode assumir a função. A conta pode ser a proprietária da função ou uma conta diferente. |
Um usuário do RAM troca de identidade no console ou chama |
|
Serviço Alibaba Cloud |
Um service de cloud especificado pode assumir a função. Esse tipo é chamado de função de service. |
Delegue a um service de cloud a capacidade de agir em seu nome. Por exemplo, anexe uma função do RAM de instância a uma instância ECS para que seus aplicativos acessem um bucket do Object Storage Service (OSS). Muitos services de cloud também usam uma service-linked role (uma função predefinida vinculada ao service) para habilitar sua funcionalidade. |
|
Provedor de identidade (IdP) |
Usuários de um IdP especificado (com suporte a SAML 2.0 ou OIDC) podem assumir a função. Isso permite a federação de identidades. |
Usuários do IdP corporativo podem usar o logon único (SSO) baseado em função para fazer login no console do Alibaba Cloud. Usuários federados podem chamar as operações |
Como impedir que um usuário específico do RAM assuma uma função específica do RAM?
-
Atualize a política de confiança da função do RAM.
Na política de confiança da função do RAM, use o elemento
Principalpara especificar o usuário do RAM autorizado a assumir a função. Substitua<account-id>pelo ID da sua conta Alibaba Cloud e<user-name>pelo nome do usuário do RAM. Para mais informações, consulte Modify the trust policy of a RAM role.Exemplo de política:
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::<account-id>:user/<user-name>" ] } } ], "Version": "1" } -
Conceda permissão ao usuário do RAM para assumir a função.
Anexe a política AliyunSTSAssumeRoleAccess ou uma política personalizada ao usuário do RAM. Uma política personalizada permite restringir quais funções o usuário pode assumir.
Na política personalizada, use o elemento
Resourcepara especificar o ARN da função do RAM que pode ser assumida. Substitua<account-id>pelo ID da sua conta Alibaba Cloud e<role-name>pelo nome da função do RAM. Para mais informações, consulte Create a custom policy e Manage RAM user permissions.Exemplo de política:
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Resource": "acs:ram:*:<account-id>:role/<role-name>" } ], "Version": "1" }
Como visualizar o ARN de uma função do RAM?
Faça login no console do RAM.
No painel de navegação à esquerda, escolha .
Clique em nome da função do RAM desejada.
Na seção Basic Information, localize e copie o ARN da função.

Existem limites de requisição de API para o STS?
A operação AssumeRole tem limite de 100 requisições por segundo por conta Alibaba Cloud (compartilhado entre todos os usuários e funções do RAM).
Se você exceder esse limite, o STS retorna uma das seguintes mensagens de erro:
-
Mensagens de erro
Código de erro
Mensagem de erro
Throttling.Api
Request was denied due to api flow control.
Throttling.User
Request was denied due to user flow control.
Throttling
Request was denied due to flow control.
Um código de status
302
Para resolver esses erros, reduza a taxa de requisições. Para solicitar uma cota maior, envie um ticket.
Quais são os limites de permissão de um token STS?
As permissões de um token STS correspondem à interseção entre as políticas baseadas em identidade da função e a política de sessão informada no parâmetro Policy da chamada AssumeRole.
Se nenhuma política de sessão for especificada ao chamar AssumeRole, o token STS retornado terá as mesmas permissões da função.
Qual é a validade de um token STS?
Os tokens STS têm validade padrão de 3.600 segundos (1 hora). O intervalo válido varia de 900 segundos (15 minutos) até a duração máxima da sessão da função.
Defina a validade do token com o parâmetro DurationSeconds de AssumeRole.
Para configurar a duração máxima da sessão de uma função, consulte Set maximum session duration for a RAM role.
Vários tokens STS para a mesma função são válidos simultaneamente?
Sim. Cada token permanece válido até expirar. A criação de um novo token não invalida os existentes.
O que fazer se um token STS for comprometido?
Caso um token STS seja comprometido, invalide todos os tokens ativos dessa função removendo suas permissões ou excluindo a função:
Faça login no console do RAM.
-
Desanexe todas as políticas da função do RAM.
Para mais informações, consulte Revoke permissions from a RAM role.
-
Ou exclua totalmente a função do RAM.
Para mais informações, consulte Delete a RAM role.
Essa ação invalida imediatamente todos os tokens STS não expirados dessa função.
Para voltar a usar a função posteriormente, crie uma nova função com o mesmo nome e as mesmas políticas.
Existe um tamanho máximo para um token STS?
Não. O tamanho do token é variável. Não presuma um tamanho máximo no seu código.