Uma função do RAM é uma identidade sem credenciais de longo prazo. Principais confiáveis a assumem para obter acesso temporário aos recursos da Alibaba Cloud.
O que é uma função do RAM?
A função do RAM é um tipo de identidade do RAM com políticas anexadas. Ao contrário do usuário do RAM, a função não se vincula a uma única pessoa ou aplicação: qualquer principal confiável pode assumi-la. Funções não possuem credenciais de longo prazo, como senhas ou pares de AccessKey. Quando um principal 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 em sua conta com um Alibaba Cloud Resource Name (ARN) exclusivo: acs:ram::<account-id>:role/<role-name>. Use esse ARN para referenciar a função em políticas ou chamadas de API. Para encontrar o ARN de uma função, consulte Visualizar uma função do RAM.
Por que usar funções do RAM?
As funções do RAM melhoram a segurança e a eficiência do acesso:
Privilégios elevados temporários: Conceda permissões elevadas a um principal para uma tarefa específica sem manter credenciais de alto privilégio de longo prazo.
Acesso a recursos entre contas: Permita que principais em uma conta acessem recursos em outra. Isso viabiliza o gerenciamento centralizado sem identidades duplicadas.
Acesso seguro a serviços e aplicações: Aplicações em uma instância do Elastic Compute Service (ECS) ou em outros serviços assumem uma função via
AssumeRolepara obter credenciais temporárias. Essa prática elimina a codificação de pares de AccessKey diretamente no código da aplicação.
Conceitos-chave
Compreenda estes conceitos antes de trabalhar com funções do RAM.
Principal
Um principal é uma identidade capaz de assumir uma função. A política de confiança da função define quais principais são confiáveis. Existem três tipos de principais:
|
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 |
|
Serviço da Alibaba Cloud |
Um serviço de nuvem especificado pode assumir a função. Esse tipo é chamado de função de serviço. |
Delegue a um serviço de nuvem a capacidade de agir em seu nome. Por exemplo, anexe uma função do RAM de instância a uma instância do ECS para que suas aplicações acessem um bucket do Object Storage Service (OSS). Muitos serviços de nuvem também usam uma função vinculada ao serviço (uma função predefinida vinculada ao serviço) 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 possibilita 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 da Alibaba Cloud. Usuários federados podem chamar as operações |
Quando uma conta da Alibaba Cloud é o principal 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 específicos do RAM, Modifique a política de confiança de uma função do RAM.
Assunção de função
A assunção de uma função do RAM permite que um principal confiável adquira 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 sessão, as permissões da identidade original ficam suspensas. A função pode pertencer à mesma conta ou a uma conta diferente (assunção entre contas).
Para assumir uma função, troque de identidade no console ou chame operações de API como AssumeRole, AssumeRoleWithSAML ou AssumeRoleWithOIDC.
Política de confiança
A política de confiança é um documento JSON obrigatório anexado a uma função do RAM. Ela define quais principais (contas, usuários, funções ou serviços) podem assumir a função. Trata-se de uma política baseada em recursos, em que o recurso é a própria função.
Funções principais:
Define quem pode assumir a função: O elemento
Principalespecifica os principais confiáveis.Controla as condições de assunção: Adicione elementos
Conditionpara restringir quando a função pode ser assumida. Exemplos incluem a exigência de MFA ou de um IP de origem específico.Funciona em conjunto com políticas de acesso: A política de confiança define quem pode assumir a função. Já as políticas de acesso definem o que a função pode fazer após a assunção.
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 um principal assume uma função, ele inicia uma sessão de função. As credenciais temporárias do STS se vinculam a essa sessão. Todas as ações executadas com essas credenciais são atribuídas à sessão.
Uma sessão de função possui:
Nome da sessão (RoleSessionName): Identificador de sessão fornecido pelo usuário. Ele aparece nos logs do ActionTrail e permite rastrear ações até o principal que assumiu a função.
Duração da sessão: Ciclo de vida fixo. As credenciais expiram quando a sessão termina.
Transmita uma política de sessão inline ao assumir uma função para limitar as permissões de uma sessão específica. As permissões efetivas correspondem à interseção entre as políticas de acesso da função e a política de sessão. Para mais informações, consulte o parâmetro Policy na referência da API AssumeRole.
Encadeamento de funções
O encadeamento de funções ocorre quando uma função é usada para assumir outra. Por exemplo, um usuário do RAM assume a Função A e depois usa seu token 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 múltiplas contas. Por exemplo, um desenvolvedor se federa em uma conta central de salto (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 atendem a propósitos diferentes.
|
Item de comparação |
Usuário do RAM |
Função do RAM |
|
Uso |
Representa uma pessoa ou aplicação específica e é usado diretamente |
Representa um conjunto de permissões e deve ser assumido por um principal |
|
Credenciais |
Possui credenciais de longo prazo (senha e/ou par de AccessKey) |
Não possui credenciais de longo prazo. Credenciais temporárias (tokens STS) são geradas no momento da assunção |
|
Validade das credenciais |
Longo prazo (até serem alteradas ou excluídas manualmente) |
Temporárias e expiram após uma duração configurável |
|
Política de confiança |
Nenhuma |
Requer uma política de confiança para definir quem pode assumir a função |
Para limitações das funções do RAM, consulte Limitações.
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 realizar uma operação sensível, como modificar um banco de dados de produção. Após a tarefa, os privilégios retornam ao conjunto limitado. Isso aplica 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 uma aplicação no ECS da Conta B, siga estas etapas:
Crie uma função na Conta B que confie na Conta A.
Conceda à função de 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 e implantar a aplicação.
-
Concessão de acesso a serviços da Alibaba Cloud
Uma aplicação 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. A aplicação usa as credenciais temporárias fornecidas automaticamente para acessar o OSS.
Para mais informações, consulte Funções do RAM de instância.
-
Fornecimento de acesso para usuários federados
Sua empresa usa um IdP externo (como Microsoft Entra ID ou Okta). Configure a federação de identidades 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. Isso permite 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.