Fornecer acesso a um usuário do IAM em outra conta da AWS de sua propriedade - AWS Identity and Access Management

Fornecer acesso a um usuário do IAM em outra conta da AWS de sua propriedade

Você pode conceder aos usuários do IAM permissões para alternar para funções na sua conta da AWS ou funções definidas em outras contas da AWS que você possui.

nota

Se deseja conceder acesso a uma conta que você não possui ou controla, veja Como fornecer acesso a contas da AWS de propriedade de terceiros mais adiante neste tópico.

Imagine que você tenha instâncias do Amazon EC2 que são críticas para sua organização. Em vez de conceder diretamente aos usuários permissão para encerrar as instâncias, você pode criar uma função com esses privilégios. Em seguida, permita que os administradores alternem para a função quando eles precisam encerrar uma instância. Isso adiciona as seguintes camadas de proteção para as instâncias:

  • É necessário conceder explicitamente aos usuários permissão para assumir a função.

  • Os usuários devem alternar ativamente para a função usando o AWS Management Console ou assumir a função usando a AWS CLI ou a API da AWS.

  • Você pode adicionar a proteção de autenticação multifator (MFA) à função para que somente os usuários que fizerem login com um dispositivo MFA possam assumir a função. Para saber como configurar uma função de maneira que os usuários que assumem a função precisem primeiro ser autenticados usando a autenticação multifator (MFA), consulte Configuração de acesso à API protegido por MFA.

Recomendamos usar essa abordagem para aplicar o princípio do privilégio mínimo. Isso significa restringir o uso de permissões elevadas para apenas quando elas forem necessárias para tarefas específicas. Com as funções, você pode ajudar a evitar alterações acidentais em ambientes confidenciais, especialmente se você combiná-las com uma auditoria para ajudar a garantir que as funções sejam usadas apenas quando necessário.

Quando cria uma função com esse propósito, você especifica as contas pelo ID cujos usuários precisam de acesso no elemento Principal da política de confiança da função. Depois, você pode conceder permissões a usuários específicos nessas outras contas para alternar para a função. Para saber se as entidades de contas fora de sua zona de confiança (organização confiável ou conta) têm acesso para assumir as suas funções, consulte O que é o IAM Access Analyzer?.

Um usuário em uma conta pode alternar para uma função na mesma conta ou em uma diferente. Ao usar a função, o usuário pode executar somente as ações e acessar somente os recursos permitidos pela função; as permissões originais do usuário são suspensas. Quando o usuário fecha a função, as permissões originais do usuário são restauradas.

Cenário de exemplo que usa contas separadas de desenvolvimento e produção

Imagine que sua organização tenha várias contas da AWS para isolar um ambiente de desenvolvimento de um ambiente de produção. Os usuários na conta de desenvolvimento podem precisar acessar os recursos na conta de produção. Por exemplo, você pode precisar de acesso entre contas ao promover uma atualização do ambiente de desenvolvimento para um ambiente de produção. Embora você pudesse criar identidades (e senhas) separadas para os usuários que trabalham nas duas contas, gerenciar credenciais para várias contas dificulta o gerenciamento de identidades. Na figura a seguir, todos os usuários são gerenciados na conta de desenvolvimento, mas alguns desenvolvedores exigem acesso limitado à conta de produção. A conta de desenvolvimento tem dois grupos: os testadores e os desenvolvedores, e cada grupo tem sua própria política.


        Use uma função para delegar permissões para um usuário em uma conta diferente
  1. Na conta de produção, um administrador usa o IAM para criar a função UpdateApp nessa conta. Na função, o administrador define uma política de confiança que especifica a conta de desenvolvimento como Principal, o que significa que usuários autorizados da conta de desenvolvimento podem usar a função UpdateApp. O administrador também define uma política de permissões para a função que especifica as permissões de leitura e gravação para o bucket do Amazon S3 denominado productionapp.

    O administrador acaba compartilhando as informações apropriadas com qualquer pessoa que precise assumir a função. Essas informações são o número da conta e o nome da função (para usuários do console da AWS) ou o Amazon Resource Name (ARN) (para acesso à AWS CLI ou à API da AWS). O ARN da função pode ser semelhante a arn:aws:iam::123456789012:role/UpdateApp, em que a função se chama UpdateApp e foi criada na conta de número 123456789012.

    nota

    O administrador pode optar por configurar a função para que os usuários que assumirem a função precisem primeiro ser autenticados usando a autenticação multifator (MFA). Para mais informações, consulte Configuração de acesso à API protegido por MFA.

  2. Na conta de desenvolvimento, um administrador concede aos membros do grupo de desenvolvedores permissão para alternar para a função. Isso é feito ao conceder ao grupo de desenvolvedores a permissão para chamar a API AssumeRole do AWS Security Token Service (AWS STS) para a função UpdateApp. Qualquer usuário do IAM que pertença ao grupo de desenvolvedores na conta de desenvolvimento agora pode alternar para a função UpdateApp na conta de produção. Outros usuários que não estão no grupo de desenvolvedor não têm permissão para alternar para a função e, portanto, não podem acessar o bucket do S3 na conta de produção.

  3. As solicitações do usuário alternam para a função:

    • Console da AWS: O usuário escolhe o nome da conta na barra de navegação e escolhe Mudar de função. O usuário especifica o ID da conta (ou alias) e o nome da função. Como alternativa, o usuário pode clicar em um link enviado por e-mail pelo administrador. O link leva o usuário para a página Alternar função com os detalhes já preenchidos.

    • API da AWS/AWS CLI : Um usuário no grupo de desenvolvedores da conta de desenvolvimento chama a função AssumeRole para obter credenciais para a função UpdateApp. O usuário especifica o ARN da função UpdateApp como parte da chamada. Se um usuário no grupo de testadores faz a mesma solicitação, a solicitação falha porque os testadores não têm permissão para chamar AssumeRole para o ARN da função UpdateApp.

  4. O AWS STS retorna credenciais temporárias:

    • Console da AWS: o AWS STS verifica a solicitação com a política de confiança da função para garantir que a solicitação é de uma entidade confiável (que é a conta de desenvolvimento). Após a verificação, o AWS STS retorna as credenciais de segurança temporárias ao console da AWS.

    • API/CLI: o AWS STS verifica a solicitação em relação à política de confiança da função para garantir que a solicitação é de uma entidade confiável (que é a conta de desenvolvimento). Após a verificação, o AWS STS retorna as credenciais de segurança temporárias ao aplicativo.

  5. As credenciais temporárias permitem acesso aos recursos da AWS:

    • Console da AWS: o console da AWS usa as credenciais temporárias em nome do usuário para todas as ações subsequentes do console, nesse caso, para ler e gravar no bucket productionapp. O console não pode acessar qualquer outro recurso na conta de produção. Quando o usuário fecha a função, as permissões do usuário revertem para as permissões mantidas antes de alternar para a função.

    • API/CLI: o aplicativo usa as credenciais de segurança temporárias para atualizar o bucket productionapp. Com as credenciais de segurança temporárias, o aplicativo só poderá ler e gravar no bucket productionapp e não poderá acessar qualquer outro recurso na conta de produção. O aplicativo não tem que sair da função, mas, em vez disso, interromper o uso de credenciais temporárias e usar as credenciais nas chamadas de API subsequentes.

Mais informações

Para obter mais informações, consulte as informações a seguir.