Todos os produtos
Search
Central de documentação

Resource Access Management:Assume a RAM role

Última atualização: Jun 26, 2026

Uma função do RAM não possui credenciais de longo prazo. Um principal confiável precisa assumir a função para obter credenciais de segurança temporárias. Este tópico explica como assumir uma função do RAM pelo console, pela CLI e pela API.

Entendendo a assunção de função

Diferentemente de um usuário do RAM, uma função do RAM não tem senha nem par de AccessKey. Um principal confiável (usuário do RAM, serviço da Alibaba Cloud ou usuário federado) deve assumir a função para obter credenciais de segurança temporárias — processo chamado de assunção de função.

Quando um principal assume uma função, ele perde temporariamente suas próprias permissões e adquire as da função. A função pode pertencer à mesma conta da Alibaba Cloud ou a uma conta diferente (acesso entre contas).

Como funciona

O Security Token Service (STS) da Alibaba Cloud intermedia a assunção de função nas etapas a seguir:

image
  1. Solicitar credenciais. Um principal (como a usuária do RAM Alice) faz uma solicitação AssumeRole ao STS e especifica o ARN da função a ser assumida (como prod-role).

  2. Verificar permissões. O RAM verifica dois pontos: (a) se Alice tem a permissão sts:AssumeRole em suas políticas de acesso; (b) se a política de confiança de prod-role especifica Alice (ou sua conta) como principal confiável.

  3. Obter uma credencial temporária. Se ambas as verificações forem aprovadas, o STS retorna uma credencial de segurança temporária (token STS).

  4. Fazer uma solicitação. O principal usa o token STS para solicitar um serviço da Alibaba Cloud, como o OSS. O serviço autoriza a solicitação com base nas políticas de acesso anexadas a prod-role.

Métodos para assumir uma função

Um principal pode assumir uma função das seguintes formas:

  • Troca de funções no console: Um usuário do RAM autenticado pode trocar sua identidade atual por uma função do RAM para executar tarefas no Console de Gerenciamento da Alibaba Cloud.

  • Acesso programático (API/CLI/SDK): Uma aplicação ou script pode chamar uma operação de API (como AssumeRole e AssumeRoleWithSAML) para obter credenciais temporárias para uma função do RAM. A CLI e os SDKs da Alibaba Cloud simplificam esse processo.

  • Federação de identidade (SAML/OIDC): Usuários de um provedor de identidade externo (IdP) podem receber acesso para assumir uma função do RAM, permitindo logon único (SSO) no console ou acesso federado à API. SSO baseado em função.

  • Funções de serviço para recursos da Alibaba Cloud: Um serviço da Alibaba Cloud (como ECS ou Function Compute) pode assumir uma função do RAM para acessar outros recursos em seu nome. Aplicações na Alibaba Cloud acessando recursos da Alibaba Cloud.

As seções a seguir abordam a assunção de função via console, CLI e API.

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

Ao assumir uma função, o sistema cria uma sessão temporária. A duração da sessão corresponde ao menor dos seguintes valores:

  • Duração máxima da sessão da função do RAM: Atributo da própria função, configurável de 1 a 12 horas (o padrão é 1 hora).

  • Duração da sessão solicitada:

    • Console: A configuração global de expiração da sessão de logon da sua conta determina a duração. Essa configuração aplica-se a todos os usuários e funções do RAM. Você pode definir esse valor de 1 a 24 horas (o padrão é 6 horas).

    • API/CLI: O parâmetro DurationSeconds na chamada AssumeRole especifica a duração. Esse valor pode variar de 15 minutos (900 segundos) até a duração máxima da sessão da função. A duração padrão é de 1 hora (3.600 segundos).

Por exemplo, se a duração máxima da sessão de uma função for de 4 horas e você fizer uma chamada AssumeRole solicitando 8 horas, a sessão durará apenas 4 horas. Se você trocar para a mesma função no console e a expiração global da sessão de logon estiver definida para 2 horas, sua sessão da função durará 2 horas.

Para saber como definir essas configurações, consulte Definir a duração máxima da sessão para uma função do RAM e Gerenciar configurações de segurança de usuários do RAM.

Como assumir uma função

Assumir uma função do RAM no console

Após fazer logon como usuário do RAM ou usuário federado, troque para uma função do RAM para utilizar as permissões dessa função.

Pré-requisitos

  • Faça logon como usuário do RAM

    O principal que troca de funções (seja um usuário do RAM ou outra função) deve ter a permissão sts:AssumeRole. Conceda essa permissão anexando a política de sistema AliyunSTSAssumeRoleAccess ou uma política personalizada. Gerenciar permissões para um usuário do RAM.

    Nota

    A política de sistema AliyunSTSAssumeRoleAccess concede permissão para assumir qualquer função. Para maior segurança, crie uma política personalizada que restrinja essa permissão a ARNs específicos de funções do RAM.

  • Faça logon usando SSO baseado em função

    A política de confiança da função do RAM de destino deve permitir que o principal (ou a conta do principal) a assuma.

Procedimento

  1. Faça logon no console do RAM como usuário do RAM ou usuário federado.

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

    Snipaste_2025-12-12_10-24-09

    Switch Identity

  3. Na página Switch Role, forneça as seguintes informações:

    • Enterprise Alias / Domain / Account UID: Insira o sufixo de logon padrão do usuário do RAM, ou o ID ou alias da conta da Alibaba Cloud proprietária da função.

    • Role Name: Insira o nome da função do RAM que você deseja assumir.

  4. Clique em Submit.

    Agora você usa as permissões da função do RAM assumida. A barra de navegação no canto superior direito exibe a função atual e sua identidade de logon original no formato CurrentRole/LogonIdentity.

    Role switched successfully

    Método de logon

    Identidade exibida

    (CurrentRole/LogonIdentity)

    Logon como usuário do RAM

    AssumedRoleName/RAMUserName

    Logon via SSO (primeira função assumida)

    AssumedRoleName/RoleSessionNameFromIdP

    Logon a partir de uma função SSO (encadeamento de funções)

    SecondAssumedRole/RoleSessionNameFromIdP

  5. (Opcional) Para parar de usar a função do RAM, passe o mouse sobre a foto de perfil no canto superior direito e clique em Back to Logon Identity. Isso restaura suas permissões originais.

Nota

Se a troca falhar, verifique se a política de acesso do seu usuário do RAM e a política de confiança da função do RAM de destino estão configuradas corretamente. A falha pode ocorrer se a política de confiança incluir condições como sts:ExternalId ou sts:SourceIdentity não atendidas pela sua sessão.

Assumir uma função do RAM programaticamente (API)

Aplicações podem chamar uma operação de API para assumir uma função do RAM e receber credenciais temporárias.

Operações de API

Operação de API

Descrição

AssumeRole

Operação principal para assumir uma função. O chamador deve ser um principal autenticado (usuário ou função do RAM).

AssumeRoleWithSAML

Utilizada em cenários de federação para trocar uma asserção SAML de um IdP por credenciais temporárias de função. A asserção SAML deve ser válida e não expirada no momento da chamada.

AssumeRoleWithOIDC

Usada em cenários de federação para trocar um token de identidade OIDC de um IdP por credenciais temporárias de função. O token OIDC deve ser válido e não expirado no momento da chamada.

Pré-requisitos

  • Para chamar AssumeRole, o principal chamador deve ter a permissão sts:AssumeRole para a função do RAM de destino. Por exemplo, anexe a política de sistema AliyunSTSAssumeRoleAccess ao principal chamador.

  • Para chamar AssumeRoleWithSAML ou AssumeRoleWithOIDC, a política de confiança da função do RAM de destino deve confiar no IdP correspondente. O chamador não precisa de uma política de acesso.

Utilize os SDKs da Alibaba Cloud para chamar essas operações. Eles gerenciam automaticamente a obtenção de credenciais e o logon. Usar um par de AccessKey e um RamRoleArn para obter um token STS (SDK Python).

Nota

Se a troca falhar, verifique se a política de acesso do seu usuário do RAM e a política de confiança da função do RAM de destino estão configuradas corretamente. A falha pode ocorrer se a política de confiança incluir condições como sts:ExternalId ou sts:SourceIdentity não atendidas pela sua sessão.

Assumir uma função do RAM com a CLI

Configure um perfil da CLI da Alibaba Cloud para assumir automaticamente uma função do RAM ao executar comandos.

  1. Crie um perfil usando o modo RamRoleArn. Esse modo utiliza as credenciais de um perfil de source (como o par de AccessKey de um usuário do RAM) para assumir a função do RAM.

    aliyun configure --profile RamRoleArnProfile --mode RamRoleArn
  2. No prompt, insira o AccessKey ID e o segredo do usuário do RAM que assumirá a função, além do ARN da função a ser assumida (Ram Role Arn). Para descrições detalhadas dos parâmetros, consulte Configurar credenciais para a CLI da Alibaba Cloud.

    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.
  3. Execute comandos usando a opção --profile. A CLI assume automaticamente a função e usa as credenciais temporárias para executar o comando.

    aliyun ram ListUsers --profile RamRoleArnProfile

Criar e usar um par de AccessKey para acesso programático.

Casos de uso avançados

Acesso entre contas

Uma função do RAM permite que principais em uma conta acessem recursos em outra.

Isso requer:

  • A política de confiança da função do RAM na conta de destino deve especificar a conta de source (ou um principal específico nela) como principal confiável.

  • O principal na conta de source deve ter a permissão sts:AssumeRole em sua política de acesso.

Acessar recursos entre contas da Alibaba Cloud.

Encadeamento de funções

O encadeamento de funções usa as credenciais de uma função assumida para assumir uma segunda função. Por exemplo, um usuário assume a Função-A e depois usa as credenciais temporárias da Função-A para assumir a Função-B.

A Função-A deve ter uma política de acesso permitindo sts:AssumeRole na Função-B, e a política de confiança da Função-B deve listar a Função-A como principal confiável.

O exemplo a seguir configura o encadeamento de funções com a CLI:

  1. Configure um perfil da CLI (como RamRoleArnProfile) para assumir a função inicial (como admin-role) na cadeia. Para instruções, consulte a seção "Assumir uma função do RAM com a CLI" neste tópico.

  2. Conceda à função de source permissão para assumir outras funções. Por exemplo, anexe a política AliyunSTSAssumeRoleAccess à função de source.

  3. Crie a função de destino (como target-role) e configure sua política de confiança para confiar na função de source.

    {
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Effect": "Allow",
          "Principal": {
            "RAM": [
              "acs:ram::<ACCOUNT_ID>:role/admin-role"
            ]
          }
        }
      ],
      "Version": "1"
    }
  4. Configure um novo perfil da CLI usando o modo ChainableRamRoleArn.

    aliyun configure --profile ChainableProfile --mode ChainableRamRoleArn
  5. No prompt, especifique o nome do perfil de source (RamRoleArnProfile) e o ARN da função de destino.

    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. Use o novo perfil encadeado para executar um comando. O comando é executado com as permissões da última função na cadeia. Verifique isso chamando sts GetCallerIdentity.

    aliyun sts GetCallerIdentity
Nota

O encadeamento de funções pode ocultar o usuário original nos logs do ActionTrail. Use a chave de condição SourceIdentity para passar a identidade original pela cadeia. Usar SourceIdentity para auditoria e controle de acesso.

FAQ

Como permitir que um usuário do RAM assuma apenas uma função específica?

Em vez de anexar AliyunSTSAssumeRoleAccess, crie uma política personalizada com Action definido como sts:AssumeRole e o ARN da função específica no elemento Resource. Consulte a seção "Como restringir um usuário do RAM específico de assumir uma função do RAM específica?" em FAQ sobre funções do RAM e tokens STS.

O proprietário da conta da Alibaba Cloud pode assumir uma função do RAM?

Não. O proprietário da conta da Alibaba Cloud não pode assumir uma função do RAM. A assunção de função destina-se a usuários do RAM, funções e usuários federados.

O que fazer se as credenciais temporárias de uma função do RAM forem expostas?

Se as credenciais temporárias forem comprometidas, invalide imediatamente todos os tokens ativos para essa função. Consulte a seção "O que fazer se um token STS vazar?" em FAQ sobre funções do RAM e tokens STS.

Referências