Uma função do RAM é uma identidade sem credenciais de longo prazo. Entidades confiáveis assumem essa identidade para obter acesso temporário aos recursos da Alibaba Cloud.
O que é uma função do RAM?
Uma função do RAM é um tipo de identidade do RAM com políticas anexadas. Ao contrário de um usuário do RAM, a função não está vinculada a uma única pessoa ou aplicativo — qualquer entidade confiável pode assumi-la. As funções não possuem credenciais de longo prazo, como senhas ou pares de AccessKey. Quando uma entidade assume uma função, o Security Token Service (STS) gera credenciais de segurança temporárias válidas apenas para aquela sessão.
Cada função do RAM é um recurso na sua conta com um Alibaba Cloud Resource Name (ARN) exclusivo: acs:ram::<account-id>:role/<role-name>, usado para referenciar a função em políticas ou chamadas de API. Para encontrar o ARN de uma função, consulte View a RAM role.
Para obter informações sobre os limites das funções do RAM, consulte Limits.
Por que usar funções do RAM
Em comparação com o acesso direto aos recursos em cloud como um usuário do RAM, assumir uma função do RAM oferece maior flexibilidade e segurança:
Privilégios elevados temporários: Conceda permissões elevadas a uma entidade para uma tarefa específica, sem a necessidade de manter credenciais de alto privilégio de longo prazo.
Acesso a recursos entre contas: Permita que entidades de uma conta acessem recursos de outra, viabilizando o gerenciamento centralizado sem identidades duplicadas.
Acesso seguro a serviços e aplicativos: Aplicativos em uma instância do Elastic Compute Service (ECS) ou em outros serviços assumem uma função por meio de
AssumeRolepara obter credenciais temporárias, eliminando pares de AccessKey incorporados no código do aplicativo.
Conceitos principais
Compreenda estes conceitos antes de trabalhar com funções do RAM.
Entidade
Uma entidade é uma identidade que pode assumir uma função. A política de confiança da função define quais entidades são confiáveis. As entidades se dividem em três tipos:
|
Tipo |
Descrição |
Casos de uso comuns |
|
Conta da Alibaba Cloud |
Qualquer identidade dentro da 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 a operação |
|
Serviço da Alibaba Cloud |
Um serviço em cloud especificado pode assumir a função. Isso é chamado de função de serviço. |
Delegue um serviço em cloud para agir em seu nome. Por exemplo, anexe uma função do RAM de instância a uma instância do ECS para que seus aplicativos possam acessar um bucket do Object Storage Service (OSS). Muitos serviços em cloud também usam uma service-linked role — uma função predefinida vinculada ao serviço — ative 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 possibilita a federação de identidade. |
Usuários do IdP corporativo podem usar o single sign-on (SSO) baseado em função para fazer logon no console da Alibaba Cloud. Usuários federados podem chamar as operações |
Quando uma conta da Alibaba Cloud é a entidade confiável, qualquer identidade dentro dessa conta pode assumir a função por padrão. Para restringir o acesso a usuários ou funções do RAM específicas, Modify the trust policy of a RAM role.
Assunção de função
Assumir uma função do RAM é a forma como uma entidade confiável adquire temporariamente as permissões da função. O STS emite credenciais de segurança temporárias e inicia uma sessão de função, durante a qual as permissões da identidade original são suspensas. A função pode pertencer à mesma conta ou a uma conta diferente (assunção entre contas).
É possível assumir uma função alternando a identidade no console ou chamando operações de API como AssumeRole ou AssumeRoleWithSAML / AssumeRoleWithOIDC.
Política de confiança
Uma política de confiança é um documento JSON obrigatório anexado a uma função do RAM que define quais entidades — contas, usuários, funções ou serviços — podem assumi-la. Trata-se de uma política baseada em recursos, onde o recurso é a própria função.
Funções principais:
Define quem pode assumir a função: O elemento
Principalespecifica as entidades confiáveis.Controla as condições de assunção: Adicione elementos
Conditionpara restringir quando a função pode ser assumida, como a exigência de MFA ou um IP de source específico.Funciona em conjunto com políticas de acesso: A política de confiança define quem pode assumir a função; as políticas de acesso definem o que a função pode fazer após ser assumida.
Exemplo:
Esta política de confiança permite que qualquer identidade na conta 123456789012**** assuma a função:
{
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"RAM": [
"acs:ram::123456789012****:root"
]
}
}
],
"Version": "1"
}
Sessão de função
Quando uma entidade assume uma função, ela inicia uma sessão de função. As credenciais temporárias do STS estão vinculadas a essa sessão, e todas as ações executadas com elas são atribuídas à sessão.
Uma sessão de função possui:
Nome da sessão (RoleSessionName): Um identificador de sessão fornecido pelo usuário que aparece nos logs do ActionTrail, permitindo rastrear as ações até a entidade que assumiu a função.
Duração da sessão: Um ciclo de vida fixo; as credenciais expiram quando a sessão termina.
Forneça uma política de sessão inline ao assumir uma função para restringir as permissões de uma sessão específica. As permissões efetivas são a interseção entre as políticas de acesso da função e a política da sessão. Para obter mais informações, consulte o parâmetro Policy na referência de API AssumeRole.
Encadeamento de funções
O encadeamento de funções ocorre quando uma função é usada para assumir outra função. Por exemplo, um usuário do RAM assume a Função A e, em seguida, usa seu token do STS para assumir a Função B. As funções podem estar na mesma conta ou em contas diferentes.
Esse padrão é comum em ambientes com várias contas. Por exemplo, um desenvolvedor usa federação em uma conta de salto central (Função A) e, depois, assume uma função privilegiada (Função B) em uma conta de produção para executar uma tarefa específica.
Encadeie funções usando a CLI da Alibaba Cloud, SDKs ou o console. Usar encadeamento de funções.
Diferenças entre funções do RAM e usuários do RAM
Funções e usuários são identidades do RAM, mas servem a propósitos diferentes.
|
Item de comparação |
Usuário do RAM |
Função do RAM |
|
Uso |
Representa uma pessoa ou aplicativo específico e é usado diretamente |
Representa um conjunto de permissões e deve ser assumido por uma entidade |
|
Credenciais |
Possui credenciais de longo prazo (senha e/ou par de AccessKey) |
Não possui credenciais de longo prazo. Credenciais temporárias (tokens do STS) são geradas no momento da assunção |
|
Validade da credencial |
Longo prazo (até ser alterada ou excluída manualmente) |
Temporária e expira após uma duração configurável |
|
Política de confiança |
Nenhuma |
Requer uma política de confiança, defina quem pode assumir a função |
Uma função do RAM não é um contêiner de usuários
Uma função do RAM não possui uma lista de membros. Ao abrir a página de detalhes de uma função do RAM, não é exibida uma lista de usuários.
Um usuário do RAM assume uma função da seguinte forma:
configure uma entidade confiável na guia Trust Policy da página de detalhes da função.
Chame a operação
AssumeRoledo STS para obter credenciais temporárias.Use as credenciais temporárias para acessar recursos como a função.
Isso difere de um grupo de usuários. Um grupo de usuários possui a guia Group Member Management, na qual é possível adicionar e visualize membros diretamente, mas uma função do RAM não tem uma lista de membros.
Para consultar as limitações das funções do RAM, consulte Limits.
Casos de uso
-
Concessão de privilégios elevados temporários
Um desenvolvedor com permissões limitadas no dia a dia assume uma função com privilégios administrativos para executar uma operação sensível, como modifique um banco de dados de produção. Após a tarefa, os privilégios retornam ao conjunto limitado, aplicando o princípio do menor privilégio.
-
Delegação de acesso entre contas
Uma organização possui contas separadas da Alibaba Cloud para desenvolvimento (Conta A) e produção (Conta B). Para permitir que um pipeline de CI/CD executado na Conta A implante um aplicativo no ECS na Conta B, faça o seguinte:
crie uma função na Conta B que confie na Conta A.
Conceda à função do serviço de CI/CD na Conta A permissão para assumir essa função na Conta B.
O pipeline de CI/CD assume a função na Conta B para obter credenciais para implantar o aplicativo.
-
Concessão de acesso a serviços da Alibaba Cloud
Um aplicativo em uma instância do ECS precisa ler dados de um bucket do OSS. Em vez de incorporar um par de AccessKey, crie uma função de serviço com permissões de leitura e anexe-a à instância. O aplicativo usa as credenciais temporárias fornecidas automaticamente para acessar o OSS.
Para obter mais informações, consulte Funções do RAM de instância.
-
Concessão de acesso para usuários federados
Sua empresa usa um IdP externo (como Microsoft Entra ID ou Okta). Configure a federação de identidade com SAML 2.0 ou OIDC e crie uma função do RAM que confie no IdP. Usuários autenticados assumem a função para acessar a Alibaba Cloud, viabilizando o gerenciamento centralizado de usuários sem a necessidade de usuários individuais do RAM.
Visão geral do SSO baseado em função usando SAML e Visão geral do SSO baseado em função usando OIDC.