Controlar o acesso a recursos da AWS usando tags - AWS Identity and Access Management

Controlar o acesso a recursos da AWS usando tags

Você pode usar uma política para controlar o acesso aos recursos do IAM ou de toda a AWS.

Para usar uma política para controlar o acesso na AWS, você deve entender como a AWS concede acesso. A AWS é composta de coleções de recursos. Um usuário do IAM é um recurso. Um bucket do Amazon S3 é um recurso. Quando usa a API da AWS, a AWS CLI ou o Console de gerenciamento da AWS para executar uma ação (como a criação de um usuário), você envia uma solicitação para essa operação. Sua solicitação especifica uma ação, um recurso, uma entidade principal (usuário ou função), uma conta principal e qualquer informação necessária. Todas essas informações fornecem o contexto.

O AWS verifica se você (a entidade principal) está autenticado (cadastrado) e autorizado (tem permissão) para executar a ação especificada no recurso especificado. Durante a autorização, o AWS verifica todas as políticas aplicáveis ao contexto da sua solicitação. A maioria das políticas é armazenada no AWS, como documentos JSON e especifica as permissões para as entidades principais. Para obter mais informações sobre os tipos e os usos de políticas, consulte Políticas e permissões no IAM.

A AWS autorizará a solicitação somente se cada parte de sua solicitação tiver permissão concedida pelas políticas. Para visualizar um diagrama desse processo, consulte Como funciona o IAM. Para obter detalhes sobre como a AWS determina se uma solicitação deve obter permissão, consulte Lógica da avaliação de política.

Ao criar uma política do IAM, você pode controlar o acesso ao seguinte:

  • Principais – controle o que a pessoa que está fazendo a solicitação (a principal) tem permissão para fazer.

  • Identidades do IAM – controle quais identidades do IAM (grupos de usuários, usuários e funções) podem ser acessadas e como.

  • Políticas do IAM – Controle quem pode criar, editar e excluir políticas gerenciadas pelo cliente, e quem pode anexar e desanexar todas as políticas gerenciadas.

  • Recursos da AWS – Controle quem tem acesso aos recursos usando uma política baseada em identidade ou em recurso.

  • Contas da AWS – Controle se uma solicitação é permitida somente para membros de uma conta específica.

Com as políticas, você pode especificar quem tem acesso aos recursos da AWS e quais ações essas pessoas podem realizar neles. Cada usuário do IAM começa sem permissões. Em outras palavras, por padrão, os usuários não podem fazer nada, nem mesmo visualizar suas próprias chaves de acesso. Para dar permissão a um usuário para fazer algo, você pode adicionar a permissão para esse usuário, ou seja, anexar uma política ao usuário. Ou você pode adicionar o usuário a um grupo que tenha a permissão pretendida.

Por exemplo, você pode conceder a um usuário permissão para listar suas próprias chaves de acesso. Você também pode expandir essa permissão e também permitir que cada usuário crie, atualize e exclua suas próprias chaves.

Quando você concede permissões a um grupo de usuários, todos desse grupo obtêm essas permissões. Por exemplo, você pode dar ao grupo de usuários administradores permissão para executar qualquer uma das ações do IAM em qualquer um dos recursos da conta da AWS. Outro exemplo: você pode dar ao grupo de usuários gerentes permissão para descrever as instâncias do Amazon EC2 da conta da AWS.

Para obter informações sobre como delegar permissões básicas aos seus usuários, grupos de usuários e funções, consulte Permissões necessárias para acessar os recursos do IAM. Para obter exemplos adicionais de políticas que ilustram permissões básicas, consulte Exemplo de políticas para administrar recursos do IAM.

Controlar o acesso de principais

Você pode usar as políticas para controlar o que a pessoa que está fazendo a solicitação (a entidade principal) pode fazer. Para fazer isso, você deve anexar uma política baseada em identidade à identidade da pessoa (usuário, grupo de usuários ou função). Você também pode usar um limite de permissões para definir as permissões máximas que uma entidade (usuário ou função) pode ter.

Por exemplo, suponha que você deseja que o usuário Zhang Wei tenha acesso total ao CloudWatch, ao Amazon DynamoDB, ao Amazon EC2 e ao Amazon S3. Você pode criar duas políticas diferentes para que possa separá-las posteriormente se precisar de um conjunto de permissões para outro usuário. Ou você pode colocar as duas permissões em uma única política e, em seguida, anexar essa política ao usuário do IAM que se chama Zhang Wei. Você também pode anexar uma política a um grupo de usuários ao qual Zhang pertence ou a uma função que Zhang pode assumir. Como resultado, quando Zhang visualiza o conteúdo de um bucket do S3, suas solicitações são permitidas. Se ele tentar criar um novo usuário do IAM, a solicitação será negada pois ele não tem permissão.

Você pode usar um limite de permissões para Zhang para ter certeza de que ele nunca terá acesso ao bucket CompanyConfidential do S3. Para fazer isso, determine o número máximo de permissões que deseja que Zhang tenha. Nesse caso, você controla o que ele faz usando suas políticas de permissões. Aqui, você só se importa com que ele não tenha acesso ao bucket confidencial. Portanto, você usa a seguinte política para definir o limite de Zhang para permitir todas as ações da AWS para o Amazon S3 e alguns outros serviços, mas negar acesso ao bucket CompanyConfidential do S3. Como o limite de permissões não permite nenhuma ação do IAM, ele impede que Zhang exclua seu limite (ou de alguém).

{ "Version": "2012-10-17", "Statement": [ { "Sid": "SomeServices", "Effect": "Allow", "Action": [ "cloudwatch:*", "dynamodb:*", "ec2:*", "s3:*" ], "Resource": "*" }, { "Sid": "NoConfidentialBucket", "Effect": "Deny", "Action": "s3:*", "Resource": [ "arn:aws:s3:::CompanyConfidential/*", "arn:aws:s3:::CompanyConfidential" ] } ] }

Quando você atribui uma política como essa como um limite de permissões a um usuário, lembre-se de que ela não concede permissões. Ela define o número máximo de permissões que uma política baseada em identidade pode conceder a uma entidade do IAM. Para obter mais informações sobre esses limites de permissões, consulte Limites de permissões para entidades do IAM.

Para obter informações detalhadas sobre os procedimentos mencionados anteriormente, consulte estes recursos:

Controlar o acesso às identidades

Você pode usar políticas do IAM para controlar o que os usuários podem fazer em uma identidade, criando uma política que você anexa a todos os usuários por meio de um grupo de usuários. Para fazer isso, crie uma política que limita o que pode ser feito em uma identidade ou quem pode acessá-la.

Por exemplo, você pode criar um grupo de usuários chamado AllUsers e, em seguida, anexá-lo a todos os usuários. Ao criar o grupo de usuários, você pode dar a todos os seus usuários o acesso para que mudem suas próprias credenciais, como descrito na seção anterior. Em seguida, você pode criar uma política que negue o acesso para alterar o grupo, a menos que o nome do usuário seja incluído na condição da política. Mas essa parte da política nega acesso a qualquer pessoa, com exceção dos usuários listados. Também é necessário incluir permissões para que todos no grupo de usuários tenham acesso às ações de gerenciamento do grupo. Por fim, anexe essa política ao grupo para que ela se aplique a todos os usuários. Dessa forma, quando um usuário não especificado na política tentar fazer alterações no grupo, a solicitação será negada.

Para criar esta política com o editor visual

  1. Faça login no Console de gerenciamento da AWS e abra o console da IAM em https://console.aws.amazon.com/iam/.

  2. No painel de navegação à esquerda, selecione Políticas.

    Se essa for a primeira vez que escolhe Políticas, a página Bem-vindo às políticas gerenciadas será exibida. Escolha Get Started.

  3. Escolha Create policy (Criar política).

  4. Na guia Editor visual, selecione Escolher um serviço para iniciar. A seguir, escolha IAM.

  5. Selecione Selecionar ações e, em seguida, digite group na caixa de pesquisa. O editor visual mostra todas as ações do IAM que contêm a palavra group, Marque todas as caixas de seleção.

  6. Escolha Recursos para especificar os recursos para a sua política. Com base nas ações que escolheu, você deve ver os tipos de recursos grupo, caminho-grupo e usuário.

    • group – Escolha Adicionar ARN. Em Recurso, marque a caixa de seleção ao lado de Qualquer. Em Group Name With Path (Nome do grupo com caminho), digite o nome do grupo de usuários AllUsers. Em seguida, escolha Adicionar.

    • group-path – Marque a caixa de seleção ao lado de Qualquer.

    • user – Marque a caixa de seleção ao lado de Qualquer.

    Uma das ações que você escolheu, ListGroups, não oferece suporte ao uso de recursos específicos. Você não precisa escolher Todos os recursos para essa ação. Quando você salvar a política ou visualizar a política na guia JSON, verá que o IAM cria automaticamente um novo bloco de permissões concedendo a permissão de execução dessa ação em todos os recursos.

  7. Para adicionar outro bloco de permissões, escolha Acrescentar permissões adicionais.

  8. Selecione Escolher um serviço e, em seguida, escolha IAM.

  9. Escolha Selecionar ações e, em seguida, escolha Alternar para negar permissões. Ao fazer isso, o bloco inteiro é usado para negar permissões.

  10. Digite group na caixa de pesquisa. O editor visual mostra todas as ações do IAM que contêm a palavra group. Marque as caixas de seleção ao lado das seguintes ações:

    • CreateGroup

    • DeleteGroup

    • RemoveUserFromGroup

    • AttachGroupPolicy

    • DeleteGroupPolicy

    • DetachGroupPolicy

    • PutGroupPolicy

    • UpdateGroup

  11. Escolha Recursos para especificar os recursos para a sua política. Com base nas ações que escolheu, você deve ver o tipo de recurso grupo. Escolha Adicionar ARN. Em Recurso, marque a caixa de seleção ao lado de Qualquer. Em Group Name With Path (Nome do grupo com caminho), digite o nome do grupo de usuários AllUsers. Em seguida, escolha Adicionar.

  12. Escolha Especificar condições da solicitação (opcional) e, em seguida, escolha Adicionar condição. Preencha o formulário com os valores a seguir:

    • Chave – Escolha aws:username

    • Qualificador – Escolha Padrão

    • Operador – Escolha StringNotEquals

    • Valor – Digite srodriguez e escolha Adicionar outro valor de condição. Digite mjackson e escolha Adicionar outro valor de condição. Digite adesai e escolha Adicionar.

    Essa condição garante que o acesso será negado às ações de gerenciamento do grupo de usuários especificado quando o usuário que está fazendo a chamada não estiver incluído na lista. Como isso nega a permissão de forma explícita, ela substitui o bloco anterior que permitia que esses usuários chamassem as ações. Aos usuários na lista o acesso não é negado, e eles recebem permissão no primeiro bloco de permissões, de maneira que podem gerenciar sem restrições o grupo de usuários.

  13. Ao concluir, selecione Revisar política.

    nota

    Você pode alternar entre as guias Editor visual e JSON sempre que quiser. No entanto, se você fizer alterações ou escolher Revisar política na guia Editor visual, o IAM poderá reestruturar sua política de forma a otimizá-la para o editor visual. Para obter mais informações, consulte Reestruturação da política.

  14. Na página Revisar política, em Nome da política, digite LimitAllUserGroupManagement. Em Description (Descrição), digite Allows all users read-only access to a specific user group, and allows only specific users access to make changes to the user group. Revise o resumo da política para ter certeza de que você concedeu as permissões que pretendia. Em seguida, escolha Criar política para salvar sua nova política.

  15. Anexe a política ao grupo de usuários. Para obter mais informações, consulte Adicionar e remover permissões de identidade do IAM.

Como alternativa, você pode criar a mesma política usando este exemplo de documento de política JSON. Para visualizar esta política JSON, consulte IAM: permite que usuários específicos do IAM gerenciem um grupo de forma programática e no console. Para obter instruções detalhadas para criar uma política usando um documento JSON, consulte Criar políticas na guia JSON.

Controlar o acesso a políticas

Você pode controlar como seus usuários aplicam as políticas gerenciadas da AWS. Para fazer isso, anexe esta política a todos os seus usuários. O ideal é você fazer isso usando um grupo de usuários.

Por exemplo, você poderá criar uma política que permita aos usuários só anexar as políticas gerenciadas IAMUserChangePassword e PowerUserAccess AWS a um novo usuário, grupo de usuários ou função do IAM.

Para as políticas gerenciadas pelo cliente, você pode controlar quem pode criar, atualizar e excluir essas políticas. É possível controlar quem pode anexar políticas às entidades principais (grupos de usuários, usuários e funções) e desanexá-las. Você também pode controlar quais políticas um usuário pode anexar e desanexar de quais entidades.

Por exemplo, você pode atribuir permissões a um administrador de conta para criar, atualizar e excluir políticas. Em seguida, você atribui permissões a um líder de equipe ou outro administrador limitado para anexar e desanexar essas políticas às entidades principais que o administrador limitado gerencia.

Para obter mais informações, consulte estes recursos:

Controlar permissões para criar, atualizar e excluir políticas gerenciadas pelo cliente

Você pode usar políticas do IAM para controlar quem tem permissão para criar, atualizar e excluir as políticas gerenciadas pelo cliente em sua conta da AWS A lista a seguir contém operações de API que fazem parte diretamente da criação, atualização e exclusão de políticas ou versões de política:

As operações da API na lista anterior correspondem a ações que você pode permitir ou negar — ou seja, permissões que você pode conceder — usando uma política do IAM.

Considere a seguinte política de exemplo. Ela permite que um usuário crie, atualize (isto é, crie uma nova versão da política), exclua e defina uma versão padrão para todas as políticas gerenciadas pelo cliente na conta da AWS. O exemplo de política também permite que o usuário liste as políticas e obtenha políticas. Para saber mais sobre como criar uma política usando este exemplo de documento de política JSON, consulte Criar políticas na guia JSON.

exemplo Exemplo de política que permite criar, atualizar, excluir, listar, obter e configurar a versão padrão de todas as políticas

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "iam:CreatePolicy", "iam:CreatePolicyVersion", "iam:DeletePolicy", "iam:DeletePolicyVersion", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:ListPolicies", "iam:ListPolicyVersions", "iam:SetDefaultPolicyVersion" ], "Resource": "*" } }

Você pode criar políticas que limitam o uso dessas operações da API para afetar somente as políticas gerenciadas que você especificar. Por exemplo, talvez você queira permitir que um usuário defina a versão padrão e exclua versões de políticas, mas somente para políticas específicas gerenciadas pelo cliente. Isso é feito especificando-se o ARN da política no elemento Resource da política que concede essas permissões.

O exemplo a seguir mostra uma política que permite que um usuário exclua versões de política e defina a versão padrão. Mas essas ações são permitidas somente para as políticas gerenciadas pelo cliente que incluem o caminho /TEAM-A/. O ARN da política gerenciada pelo cliente é especificado no elemento Resource da política. (Neste exemplo, o ARN inclui um caminho e um caractere curinga e, portanto, corresponde a todas as políticas gerenciadas pelo cliente que incluem o caminho /TEAM-A/). Para saber mais sobre como criar uma política usando este exemplo de documento de política JSON, consulte Criar políticas na guia JSON.

Para obter mais informações sobre o uso de caminhos nos nomes de políticas gerenciadas pelo cliente, consulte Nomes amigáveis e caminhos.

exemplo Exemplo de política que permite excluir versões de políticas e definir a versão padrão somente para políticas específicas

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "iam:DeletePolicyVersion", "iam:SetDefaultPolicyVersion" ], "Resource": "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:policy/TEAM-A/*" } }

Controlar permissões para anexar e desanexar políticas gerenciadas

Você também pode usar as políticas do IAM para permitir que os usuários trabalhem somente com políticas gerenciadas específicas. Em suma, você pode controlar quais permissões um usuário pode conceder a outras entidades principais.

A lista a seguir mostra as operações da API que fazem parte diretamente da anexação e desanexação de políticas gerenciadas às entidades principais:

Você pode criar políticas que limitam o uso dessas operações da API para afetar somente as políticas gerenciadas e/ou as entidades principais que você especifica. Por exemplo, talvez você queira permitir que um usuário anexe políticas gerenciadas, mas somente as políticas gerenciadas que você especificar. Ou, talvez você queira permitir que um usuário anexe políticas gerenciadas, mas somente às entidades principais que você especificar.

O exemplo de política a seguir permite que um usuário só anexe políticas gerenciadas a grupos de usuários e funções que incluam o caminho /TEAM-A/. Os ARNs do grupo de usuários e da função são especificados no elemento Resource da política. (Neste exemplo, os ARNs incluem um caminho e um caractere curinga e, portanto, devem corresponder a todos os grupos de usuários e funções que incluam o caminho /TEAM-A/). Para saber mais sobre como criar uma política usando este exemplo de documento de política JSON, consulte Criar políticas na guia JSON.

exemplo Exemplo de política que permite anexar políticas gerenciadas somente a determinados grupos de usuários ou funções

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "iam:AttachGroupPolicy", "iam:AttachRolePolicy" ], "Resource": [ "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:group/TEAM-A/*", "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:role/TEAM-A/*" ] } }

Você pode limitar ainda mais as ações no exemplo anterior para afetar somente políticas específicas. Ou seja, você pode controlar quais permissões um usuário pode anexar a outras entidades principais — adicionando uma condição à política.

No exemplo a seguir, a condição garante que as permissões AttachGroupPolicy e AttachRolePolicy sejam concedidas somente quando a política sendo anexada corresponda a uma das políticas especificadas. A condição usa a iam:PolicyARN chave de condição para determinar qual política (ou políticas) pode ser anexada. A política de exemplo a seguir expande o exemplo anterior. Ela permite que um usuário só anexe políticas gerenciadas que incluem o caminho /TEAM-A/ a grupos de usuários e funções que incluem o caminho /TEAM-A/. Para saber mais sobre como criar uma política usando este exemplo de documento de política JSON, consulte Criar políticas na guia JSON.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "iam:AttachGroupPolicy", "iam:AttachRolePolicy" ], "Resource": [ "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:group/TEAM-A/*", "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:role/TEAM-A/*" ], "Condition": {"ArnLike": {"iam:PolicyARN": "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:policy/TEAM-A/*"} } } }

Esta política usa o operador de condição ArnLike porque o ARN inclui um caractere curinga. Para um ARN específico, use o operador de condição ArnEquals. Para obter mais informações sobre ArnLike e ArnEquals, consulte Operadores de condição do nome de recurso da Amazon (ARN) na seção Tipos de condição da Referência sobre elementos de políticas.

Por exemplo, é possível limitar o uso dessas ações para envolver somente as políticas gerenciadas que você especifica. Isso é feito especificando-se o ARN da política no elemento Condition da política que concede essas permissões. Por exemplo, para especificar o ARN de uma política gerenciada pelo cliente:

"Condition": {"ArnEquals": {"iam:PolicyARN": "arn:aws:iam::123456789012:policy/POLICY-NAME"} }

Você pode especificar o ARN de uma política gerenciada da AWS no elemento Condition da política. O ARN de uma política gerenciada da AWS usa o alias especial aws no ARN da política, em vez de um ID de conta, como neste exemplo:

"Condition": {"ArnEquals": {"iam:PolicyARN": "arn:aws:iam::aws:policy/AmazonEC2FullAccess"} }

Controlar o acesso a recursos

Você pode controlar o acesso aos recursos usando uma política baseada em identidade ou em recurso. Em uma política baseada em identidade, você anexa a política a uma identidade e especifica que recursos essa identidade pode acessar. Em uma política baseada em recursos, você anexa uma política ao recurso que deseja controlar. Na política, você especifica quais entidades principais podem acessar esse recurso. Para obter mais informações sobre ambos os tipos de políticas, consulte Políticas baseadas em identidade e em recursos.

Para obter mais informações, consulte estes recursos:

Criadores de recursos não têm permissões automaticamente

Se você fizer login usando as credenciais do Usuário raiz da conta da AWS, terá permissão para executar qualquer ação nos recursos que pertencem à conta. No entanto, isso não é verdadeiro para usuários do IAM. Um usuário do IAM pode receber acesso para criar um recurso, mas as permissões do usuário, mesmo para esse recurso, são limitadas ao que foi explicitamente concedido. Isso significa que só pelo fato de criar um recurso, como uma função do IAM, você não tem automaticamente permissão para editar ou excluir essa função. Além disso, sua permissão pode ser revogada a qualquer momento pelo proprietário da conta ou por outro usuário que tenha recebido acesso para gerenciar suas permissões.

Controlar o acesso a entidades principais em uma conta específica

Você pode conceder diretamente acesso a seus recursos aos usuários do IAM em sua própria conta. Se os usuários de outra conta precisarem de acesso a seus recursos, você poderá criar uma função do IAM. Uma função é uma entidade que inclui permissões, mas que não está associada a um usuário específico. Os usuários de outras contas podem, então, assumir a função e acessar os recursos de acordo com as permissões que você tiver atribuído à função. Para obter mais informações, consulte Fornecer acesso a um usuário do IAM em outra conta da AWS de sua propriedade.

nota

Alguns serviços são compatíveis com políticas baseadas em recursos como descrito em Políticas baseadas em identidade e em recursos (como o Amazon S3, o Amazon SNS e o Amazon SQS). Para esses serviços, uma alternativa para usar funções é anexar uma política ao recurso (bucket, tópico, ou fila) que você deseja compartilhar. A política com base em recurso pode especificar a conta da AWS que tenha permissões para acessar o recurso.