Versionamento de políticas do IAM - AWS Identity and Access Management

Versionamento de políticas do IAM

Quando você faz alterações em uma política gerenciada pelo cliente do IAM, e quando a AWS faz alterações em uma política gerenciada pela AWS, a política alterada não substitui a política existente. Em vez disso, o IAM cria uma nova versão da política gerenciada. IAM armazena até cinco versões das políticas gerenciadas pelo cliente. IAM não suporta o controle de versão para políticas em linha.

O diagrama a seguir ilustra o versionamento de uma política gerenciada pelo cliente. Neste exemplo, as versões de 1 a 4 foram salvas. Você pode ter até cinco versões de políticas gerenciadas salvas em IAM. Quando você edita uma política que cria uma sexta versão salva, você pode escolher qual versão mais antiga não deve mais ser salva. Você pode reverter para qualquer uma das outras quatro versões salvas a qualquer momento.


      As alterações nas políticas gerenciadas tornam-se novas versões da política

Uma versão de política é diferente de um elemento de política Version. O elemento de política Version é usado em uma política e define a versão da linguagem da política. Para saber mais sobre o elemento de política Version, consulte Elementos de política JSON do IAM: Version.

Você pode usar versões para acompanhar alterações em uma política gerenciada. Por exemplo, você pode alterar uma política gerenciada e, em seguida, descobrir que a alteração teve efeitos indesejados. Nesse caso, é possível reverter para uma versão anterior da política gerenciada definindo a versão anterior como a versão padrão.

As seções a seguir explicam como usar o versionamento para políticas gerenciadas.

Permissões para definir a versão padrão de uma política

As permissões que são necessárias para definir a versão padrão de uma política correspondem às operações de API da AWS para a tarefa. Você pode usar as operações CreatePolicyVersion ou SetDefaultPolicyVersion de API para definir a versão padrão de uma política. Para permitir que algum usuário defina a versão padrão de uma política existente, você pode permitir acesso a ação iam:CreatePolicyVersion ou a iam:SetDefaultPolicyVersion. A ação iam:CreatePolicyVersion permite criar uma nova versão da política e definir essa versão como padrão. A ação iam:SetDefaultPolicyVersion permite definir qualquer versão existente da política como padrão.

Importante

Negar a ação iam:SetDefaultPolicyVersion na política de um usuário não impede que ele crie uma nova versão da política e a configure como padrão.

Você pode usar a seguinte política para negar a um usuário acesso para alterar uma política existente gerenciada pelo cliente:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "iam:CreatePolicyVersion", "iam:SetDefaultPolicyVersion" ], "Resource": "arn:aws:iam::*:policy/POLICY-NAME" } ] }

Definir a versão padrão de políticas gerenciadas pelo cliente

Uma das versões de uma política gerenciada é definida como a versão padrão. A versão padrão da política é a versão operativa—isto é, a versão em vigor para todas as principais entidades (usuários, grupos de usuários e funções) às quais a política gerenciada está anexada.

Quando você cria uma política gerenciada pelo cliente, a política começa com uma única versão identificada como v1. Para políticas gerenciadas com apenas uma única versão, essa versão é automaticamente definida como padrão. Para políticas gerenciadas pelo cliente com mais de uma versão, você escolhe qual versão definir como padrão. Para políticas gerenciadas pela AWS, a versão padrão é definida pela AWS. Os diagramas a seguir ilustram esse conceito.


        Política gerenciada com uma única versão, que é a versão padrão


        Política gerenciada pelo cliente com três versões, na qual a versão v2 é a versão padrão.

É possível definir a versão padrão de uma política gerenciada pelo cliente para aplicar essa versão a todas as identidades do IAM (usuário, grupo de usuários e função) às quais a política está anexada. Não é possível definir a versão padrão para uma política gerenciada pela AWS ou em linha.

Para definir a versão padrão de uma política gerenciada pelo cliente (console)

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

  2. No painel de navegação, selecione Policies (Políticas).

  3. Na lista de políticas, escolha o nome da política para a qual deseja definir a versão padrão. Você pode usar a caixa de pesquisa para filtrar a lista de políticas.

  4. Escolha a guia Versões da política. Marque a caixa de seleção ao lado da versão que você deseja definir como a versão padrão e, em seguida, selecione Definir como padrão.

Para saber como definir a versão padrão de uma política gerenciada pelo cliente desde a AWS Command Line Interface ou da API da AWS, consulte Editar políticas gerenciadas pelo cliente (AWS CLI).

Usar versões para reverter alterações

Você pode definir a versão padrão de uma política gerenciada pelo cliente para reverter suas alterações. Por exemplo, considere os seguintes cenários:

Você cria uma política gerenciada pelo cliente que permite que os usuários administrem um determinado bucket do Amazon S3 usando o AWS Management Console. Após a criação, a política gerenciada pelo cliente tem apenas uma versão, identificada como v1, portanto, essa versão é automaticamente definida como a padrão. A política funciona como previsto.

Posteriormente, você atualiza a política para adicionar permissão para administrar um segundo bucket do Amazon S3. O IAM cria uma nova versão da política, identificada como v2, que contém as alterações. Você define a versão v2 como padrão, e pouco tempo depois seus usuários relatam que eles não têm permissão para usar o console do Amazon S3. Nesse caso, você pode reverter para a versão v1 da política, que funciona como previsto. Para fazer isso, defina a versão v1 como a versão padrão. Seus usuários agora podem usar o console do Amazon S3 para administrar o bucket original.

Depois de determinar o erro na versão v2 da política, atualize a política novamente para adicionar permissão para administrar o segundo bucket do Amazon S3. O IAM cria outra versão da política, identificada como v3. Você define a versão v3 como padrão, e essa versão funciona como previsto. Nesse ponto, exclua a versão v2 da política.

Limites de versões

Uma política gerenciada pode ter até cinco versões. Se precisar fazer alterações na política gerenciada além das cinco versões da AWS Command Line Interface ou da API do AWS, primeiro você deve excluir uma ou mais versões existentes. Se você usar o AWS Management Console, não será necessário excluir uma versão antes de editar sua política. Quando você salva uma sexta versão, uma caixa de diálogo é exibida solicitando que você exclua uma ou mais versões não padrão da sua política. Visualize o documento de política JSON de cada versão para ajudá-lo a decidir. Para obter detalhes sobre essa caixa de diálogo, consulte Editar políticas do IAM.

Você pode excluir qualquer versão da política gerenciada que desejar, exceto para a versão padrão. Quando você exclui uma versão, os identificadores de versão das versões restantes não são alterados. Como resultado, os identificadores da versão talvez não sejam sequenciais. Por exemplo, se você excluir versões v2 e v4 de uma política gerenciada e adicionar duas novas versões, os identificadores das versões restantes podem ser v1, v3, v5, v6 e v7.