Todos os produtos
Search
Central de documentação

Resource Access Management:Assume a RAM role

Última atualização: Sep 01, 2026

Assuma uma função do RAM para obter temporariamente as permissões da função e acessar recursos da Alibaba Cloud. Você pode assumir uma função do RAM no console, pela Alibaba Cloud CLI ou chamando as operações de API do Security Token Service (STS).

O que é assunção de função

Diferentemente de um usuário do RAM, uma função do RAM não permite login direto no console. Primeiro, faça login no console como um usuário do RAM ou via SSO e, em seguida, alterne para a função do RAM desejada. Esse processo chama-se assunção de função.

Ao alternar a identidade no console, as permissões da identidade original são suspensas temporariamente e você passa a operar com as permissões da função do RAM assumida. A função assumida pode pertencer à mesma conta da Alibaba Cloud do usuário do RAM conectado ou a uma conta diferente (assunção de função entre contas).

Como funciona

O exemplo a seguir ilustra o funcionamento da assunção de função. Neste cenário, a usuária do RAM Alice assume a função do RAM prod-role e acessa o OSS com essa função.

image
  • Solicitação para assumir a função do RAM. A usuária do RAM Alice solicita credenciais temporárias (um token STS) para a função do RAM prod-role ao Security Token Service (STS) da Alibaba Cloud. O RAM verifica a identidade de Alice (por exemplo, usando um par de AccessKey), se ela tem permissão para assumir a função (sts:AssumeRole) e se a política de confiança da prod-role permite que Alice a assuma (se o Principal corresponde a Alice).

  • Obtenção do token STS. Após a aprovação na verificação, Alice recebe o token STS retornado pelo STS.

  • Acesso aos recursos da nuvem como a função. Alice utiliza o token STS para acessar recursos da nuvem, como o OSS, atuando como a função do RAM prod-role. Essas solicitações são avaliadas conforme as políticas de acesso da função do RAM prod-role (por exemplo, oss:*). As credenciais originais de Alice permanecem válidas; apenas as requisições feitas com o token STS utilizam as permissões da função.

Métodos de assunção de função

Você pode assumir uma função do RAM das seguintes formas:

  • Alternância de identidade no console — Após fazer login no Console de Gerenciamento da Alibaba Cloud, o usuário do RAM utiliza o recurso Switch Identity para mudar para a função desejada. Este tópico descreve esse método em detalhes.

  • Chamada de operações de API — Administradores ou desenvolvedores usam a Alibaba Cloud CLI, SDK ou OpenAPI para chamar a operação AssumeRole (ou outras operações de assunção de função, como AssumeRoleWithSAML) e obter o token STS. Este tópico aborda esse método detalhadamente.

  • SSO baseado em função — Os usuários fazem login no console por meio de role-based SSO (baseado no protocolo SAML 2.0) utilizando o provedor de identidade (IdP) corporativo. Ao concluir o login no console, o usuário já terá assumido a função do RAM.

  • Vinculação da função a recursos da Alibaba Cloud — Vincule ou associe a função a recursos específicos da Alibaba Cloud (como uma instância ECS, Function Compute ou um Pod ACK/ACS) e utilize os recursos nativos da plataforma Alibaba Cloud para concluir a assunção da função. Para mais informações, consulte Applications on Alibaba Cloud accessing Alibaba Cloud resources. Os dois últimos cenários não são descritos em detalhes neste tópico. Para instruções de uso, consulte os documentos referenciados acima.

Como assumir uma função do RAM

Escolha um método adequado ao seu cenário. Para todos os métodos disponíveis de assunção de função, consulte Methods of role assumption.

  • Operações manuais no console — Alterne para a função do RAM no console para realizar operações interativas.

  • Automação para programas ou services — Chame as operações do STS para obter o token STS e use-o para acessar recursos da Alibaba Cloud programaticamente.

  • Operações interativas na linha de comando — Utilize a Alibaba Cloud CLI para executar operações como a função do RAM.

Pré-requisitos

Antes de assumir uma função do RAM, certifique-se de atender aos seguintes requisitos:

  • Função do RAM de destino — A função do RAM desejada deve estar disponível e sua política de confiança deve permitir que a identidade original assuma a função. Por exemplo, a palavra-chave Principal na política de confiança deve corresponder à identidade original.

  • Permissões da identidade original — A identidade original precisa ter permissão para assumir a função de destino. Anexe a política de sistema AliyunSTSAssumeRoleAccess ou uma política personalizada que contenha a operação sts:AssumeRole à identidade original. A política de sistema AliyunSTSAssumeRoleAccess permite que um usuário do RAM assuma todas as funções do RAM. Para mais informações sobre autorização, consulte Grant permissions to a RAM user.

  • Login via SSO baseado em função — Se você fizer login por meio de SSO baseado em função, já estará conectado como uma função do RAM. Para alternar para outra função, garanta que a função atual tenha permissão para assumir a função de destino. Por exemplo, se a identidade após o login via SSO baseado em função for a Função A e você quiser alternar para a Função B, a Função A deve possuir uma política de acesso que permita assumir a Função B.

  • Par de AccessKey (apenas para API e CLI) — Um par de AccessKey de um usuário do RAM deve estar preparado para autenticação programática. Para etapas detalhadas, consulte Create and use an AccessKey pair for programmatic access.

Assumir uma função do RAM no console

Após fazer login no console como um usuário do RAM ou via SSO baseado em função, assuma uma função do RAM alternando a identidade.

Procedimento1. Faça login no RAM console como um usuário do RAM ou por meio de SSO baseado em função.

  1. Passe o ponteiro do mouse sobre a foto de perfil no canto superior direito e clique em Switch Identity.

  2. Na página Switch Role, insira as informações da função do RAM que deseja assumir.

    a. enterprise alias / default domain name / Alibaba Cloud account ID: Insira uma das seguintes opções: o alias corporativo (alias da conta) da conta proprietária da função do RAM, o nome de domínio padrão ou o ID da conta da Alibaba Cloud proprietária da função. Para alternar entre contas, insira o ID da conta da Alibaba Cloud da conta de destino.

    b. Role name: O nome da função do RAM que você deseja assumir. Consulte seu administrador ou visualize-o na página Identity Management > Roles do console do RAM.

  3. Clique em Submit.

    Após a alternância de identidade, você operará o console como a função do RAM. A área da foto de perfil no canto superior direito do console exibe a identidade atual e a identidade de login (a identidade original). O painel inclui um rótulo RAM role que identifica o tipo da identidade atual. Na parte inferior, estão disponíveis os botões Back to Logon Identity e Sign Out.

  4. (Opcional) Para voltar à identidade de login original, passe o ponteiro do mouse sobre a foto de perfil no canto superior direito do console e clique em Back to Logon Identity. Após a alternância, as permissões da função do RAM tornam-se inválidas e as permissões da identidade original são restauradas. A tabela a seguir descreve os formatos de exibição da identidade de login e da identidade atual:

Cenário de login

Identidade de login

Identidade atual

Login de usuário do RAM

<RAM username>

<RoleName>/<RAM username>

Login via SSO baseado em função (primeira vez)

Não exibido

<RoleName>/<RoleSessionName>

Alternância de identidade após login via SSO baseado em função

<SSO role name>/<RoleSessionName>

<Switched role name>/<RoleSessionName>

Descrições dos campos

  • RoleName: O nome da função atualmente assumida.

  • RoleSessionName: O nome da sessão. Corresponde ao nome de usuário do RAM quando um usuário do RAM faz login. No login via SSO baseado em função, é fornecido pelo IdP e permanece inalterado após a alternância de identidade.

Exemplo

O usuário Tom (UPN: tom@example.com, onde UPN é o User Principal Name) faz login no console via SSO baseado em função como a função test-saml-role1 e, em seguida, alterna para a função alice-testrole. Suponha que o RoleSessionName seja o UPN do usuário. A identidade de login e a identidade atual são as seguintes:

  • Identidade de login: test-saml-role1/tom@example.com

  • Identidade atual: alice-testrole/tom@example.com

Assumir uma função do RAM chamando operações de API

Chame as operações do STS para assumir uma função do RAM e obter o token STS da função assumida. Quando um programa ou service acessa recursos da Alibaba Cloud com o token STS, ele executa operações dentro das permissões da função assumida.

Operações de assunção de função

A tabela a seguir descreve as operações de assunção de função do STS. Escolha uma operação com base nas credenciais ou no método de federação de identidade do chamador.

API

Descrição

AssumeRole

Obtém o token STS para assumir uma função do RAM. Adequado para cenários de assunção de função que utilizam credenciais como um par de AccessKey ou um token STS.

AssumeRoleWithSAML

Obtém o token STS usando uma asserção SAML. Indicado para cenários de SSO baseado em função SAML.

AssumeRoleWithOIDC

Obtém o token STS usando um token OpenID Connect (OIDC). Recomendado para cenários de SSO baseado em função OIDC.

Ao chamar as operações acima, use o parâmetro RoleArn para especificar a função do RAM que deseja assumir. O formato do ARN é acs:ram::<Alibaba Cloud account ID>:role/<role name>.

Também é possível passar o parâmetro Policy (política de sessão) para restringir ainda mais as permissões da função assumida na sessão de função atual.

Permissões necessárias

As permissões exigidas variam dependendo da operação utilizada para a assunção da função:

  • Se utilizar a operação AssumeRole, o chamador deve ter a permissão de operação sts:AssumeRole. Por exemplo, anexe a política de sistema AliyunSTSAssumeRoleAccess ao chamador.

  • Se utilizar a operação AssumeRoleWithSAML ou AssumeRoleWithOIDC, basta configurar corretamente o IdP SAML ou OIDC confiável na política de confiança da função do RAM de destino. Não é necessário atribuir separadamente uma política de acesso do RAM à identidade externa. Use o kit de desenvolvimento de software (SDK) da Alibaba Cloud para chamar as operações de assunção de função e assumir uma função do RAM. Para códigos de exemplo, consulte a documentação relacionada ao SDK, como Use an AccessKey pair and a RamRoleArn to get an STS token (Python SDK).

Para verificar se o token STS funciona, utilize-o para chamar a operação GetCallerIdentity do STS. A resposta contém o ARN da função assumida.

Assumir uma função do RAM usando a Alibaba Cloud CLI

O exemplo a seguir mostra como usar a Alibaba Cloud CLI para assumir a função do RAM admin-role e concluir tarefas de gerenciamento como essa função.

  1. Configure as credenciais de identidade para a Alibaba Cloud CLI. Este exemplo usa o modo RamRoleArn, que utiliza o par de AccessKey de um usuário do RAM como método de autenticação para concluir a assunção da função.

    aliyun configure --profile RamRoleArnProfile --mode RamRoleArn
  2. Conforme solicitado, insira o AccessKey ID, o AccessKey secret, o ARN da função que deseja assumir, o nome da sessão da função e outras informações. Para mais informações sobre os parâmetros e o uso, consulte Configure credentials for Alibaba Cloud CLI.

    Configuring profile 'RamRoleArnProfile' in 'RamRoleArn' authenticate mode... Access Key Id []: <yourAccessKeyID> Access Key Secret []: <yourAccessKeySecret> Sts Region []: cn-shanghai Ram Role Arn []: acs:ram::012345678910****:role/admin-role Role Session Name []: user-name External ID []: abcd1234 Expired Seconds [900]: 900 Default Region Id []: cn-shanghai Default Output Format [json]: json (Only support json) Default Language [zh|en] en: en Saving profile[RamRoleArnProfile] ...Done.Expired Seconds mantém o valor padrão de 900 segundos (15 minutos) exibido no prompt da CLI. Esse valor difere do valor padrão (3.600 segundos) do parâmetro DurationSeconds das operações AssumeRole*.

  3. Após concluir a autenticação, execute os comandos necessários com o perfil. A identidade usada para executar os comandos será a função do RAM assumida admin-role, e não o usuário do RAM proprietário do par de AccessKey.Role chaining

    aliyun ram ListUsers --profile RamRoleArnProfile aliyun sts GetCallerIdentity --profile RamRoleArnProfile. A resposta contém o ARN da função assumida.

    Para assumir outra função do RAM como a função assumida, consulte

    .

Se a assunção da função falhar

Caso o administrador configure regras de condição especiais para a função do RAM de destino, como sts:ExternalId ou sts:SourceIdentity, ou se a função de destino confiar apenas em principais específicos, como um usuário do RAM específico, a assunção da função poderá falhar.

Se a assunção da função falhar ou se uma chamada de API retornar um erro relacionado a permissões, verifique as políticas de acesso concedidas à identidade original e a política de confiança da função de destino.

Assunção de função entre contas

A assunção de função entre contas permite usar uma identidade (um usuário do RAM ou uma função do RAM) de uma conta da Alibaba Cloud para assumir uma função do RAM em outra conta da Alibaba Cloud e, assim, acessar os recursos dessa conta.

A assunção de função entre contas exige as seguintes condições:

  • A função de destino deve confiar na conta de origem, ou em um usuário do RAM ou função do RAM da conta de origem. Isso é definido pela palavra-chave Principal na política de confiança da função de destino.

  • A identidade original deve ter a permissão de operação sts:AssumeRole. Para mais informações, consulte Perform cross-account role assumption.

Encadeamento de funções

O encadeamento de funções é o processo em que uma identidade do RAM (ou uma identidade de SSO baseado em função) assume uma função e continua a assumir outras funções a partir dela. O encadeamento de funções baseia-se no mecanismo padrão de assunção de função descrito neste tópico.

Para permitir que a Função A continue assumindo a Função B, a Função A deve ter a permissão de operação sts:AssumeRole e a Função B deve confiar na Função A.

O exemplo a seguir usa a Alibaba Cloud CLI para demonstrar o encadeamento de funções:

  1. Siga o exemplo em Use the CLI to assume a RAM role para configurar a Alibaba Cloud CLI e assumir a função admin-role (a função de origem).

  2. Adicione a política de sistema AliyunSTSAssumeRoleAccess à função admin-role.

  3. Crie a função do RAM de destino, por exemplo, chamada target-role. Modifique a política de confiança da função de destino e especifique a identidade como admin-role na palavra-chave Principal:

    {
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Effect": "Allow",
          "Principal": {
            "RAM": [
              "acs:ram::<ACCOUNT_ID>:role/admin-role"
            ]
          }
        }
      ],
      "Version": "1"
    }
  4. Use o modo ChainableProfile para configurar a Alibaba Cloud CLI.

    aliyun configure --profile ChainableProfile --mode ChainableRamRoleArn
  5. Conforme solicitado, insira o nome do perfil de origem, o ARN da função que deseja continuar assumindo e outras informações.

    Configuring profile 'ChainableProfile' in 'ChainableRamRoleArn' authenticate mode...
    Source Profile []: RamRoleArnProfile
    Sts Region []: cn-shanghai
    Ram Role Arn []: acs:ram::012345678910****:role/target-role
    Role Session Name []: user-name
    External ID []: abcd1234
    Expired Seconds [900]: 900
    Default Region Id []: cn-shanghai
    Default Output Format [json]: json (Only support json)
    Default Language [zh|en] zh: en
    Saving profile[ChainableProfile] ...Done.
  6. Após concluir a autenticação, execute o seguinte comando para visualizar as informações de identidade do chamador atual. A resposta contém o ARN da função de destino.enable auditing of role assumption

    aliyun sts GetCallerIdentity --profile ChainableProfile

    Em cenários de encadeamento de funções, rastrear a identidade do chamador inicial da função por meio de logs de auditoria torna-se difícil. Como melhor prática,

    .

Duração da sessão da função

Uma sessão de função é uma sessão de acesso com tempo limitado, estabelecida após um principal, como um usuário do RAM ou outra entidade confiável, assumir uma função com sucesso. A duração da sessão da função controla por quanto tempo você pode executar operações como a função. Após a expiração da sessão, assuma a função novamente para obter uma nova sessão.

Console

Fator determinante

Valor padrão

Intervalo válido

Descrição

Duração máxima da sessão

1 hora

1 a 12 horas

Configurável individualmente para cada função.

Expiração da sessão de login

6 horas

1 a 24 horas

Configuração global que afeta todos os usuários e funções do RAM.

A duração efetiva da sessão corresponde ao menor valor entre os dois fatores acima. Por exemplo, se a expiração da sessão de login estiver definida como 8 horas e a duração máxima da sessão da Função A estiver definida como 1 hora, após alternar para a Função A, a duração da sessão será de 1 hora. Após a expiração da sessão, alterne a identidade novamente para assumir a função.

OpenAPI

Fator determinante

Valor padrão

Intervalo válido

Descrição

Duração máxima da sessão

1 hora

1 a 12 horas

Configurável individualmente para cada função.

Parâmetro DurationSeconds

3.600 segundos (1 hora)

De 900 segundos (15 minutos) até a duração máxima da sessão

Especificado ao chamar as operações AssumeRole*.

Validade da resposta SAML/token OIDC

Determinada pelo IdP (geralmente 1 hora)

Determinada pelo IdP

Apenas para cenários de SSO baseado em função, ao obter um token STS por meio da operação AssumeRoleWithSAML ou AssumeRoleWithOIDC.

A duração efetiva da sessão corresponde ao menor valor entre os fatores acima. Após a expiração da sessão, chame as operações AssumeRole* novamente para assumir a função.

Para saber como configurar a duração máxima da sessão e a expiração da sessão de login, consulte Configure the maximum session duration of a RAM role e Configure the logon session expiration.

Perguntas frequentes

Como restringir um usuário a assumir apenas funções do RAM específicas

A política de sistema AliyunSTSAssumeRoleAccess permite assumir todas as funções do RAM. Para restringir a assunção de função a funções do RAM específicas, configure uma política de acesso personalizada para a identidade original e modifique a política de confiança da função de destino. Para mais informações, consulte How do I restrict a specific RAM user from assuming a specific RAM role.

Uma conta da Alibaba Cloud pode assumir uma função do RAM

Não. Uma conta da Alibaba Cloud (conta raiz) não pode alternar para uma função do RAM no console nem assumir uma função do RAM chamando a operação AssumeRole.

O que fazer se as credenciais temporárias obtidas por meio da assunção de função forem vazadas

Caso as credenciais temporárias obtidas por meio da assunção de função sejam vazadas, revogue todos os tokens STS emitidos. Para mais informações, consulte What do I do if an STS token is leaked.

Referências