

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Exemplos de políticas do IAM para o Amazon EBS
<a name="security_iam_id-based-policy-examples"></a>

Por padrão, usuários e perfis não têm permissão para criar ou modificar recursos do Amazon EBS. Eles também não podem realizar tarefas usando a AWS API Console de gerenciamento da AWS, AWS Command Line Interface (AWS CLI) ou. Para conceder permissão aos usuários para executar ações nos recursos que eles precisam, um administrador do IAM pode criar políticas do IAM. O administrador pode então adicionar as políticas do IAM aos perfis e os usuários podem presumir os perfis.

Para saber como criar uma política baseada em identidade do IAM usando esses exemplos de documento de política JSON, consulte [Criação de políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) no *Guia do Usuário do IAM*.

**Topics**
+ [Práticas recomendadas de política](#security_iam_service-with-iam-policy-best-practices)
+ [Permitir que usuários usem o console do Amazon EBS](#security_iam_id-based-policy-examples-console)
+ [Permitir que os usuários visualizem suas próprias permissões](#security_iam_id-based-policy-examples-view-own-permissions)
+ [Permitir que usuários trabalhem com volumes](#iam-example-manage-volumes)
+ [Permitir que usuários trabalhem com snapshots](#iam-example-manage-snapshots)

## Práticas recomendadas de política
<a name="security_iam_service-with-iam-policy-best-practices"></a>

As políticas baseadas em identidade determinam se alguém pode criar, acessar ou excluir recursos do Amazon EBS em sua conta. Essas ações podem incorrer em custos para sua Conta da AWS. Ao criar ou editar políticas baseadas em identidade, siga estas diretrizes e recomendações:
+ **Comece com as políticas AWS gerenciadas e avance para as permissões de privilégios mínimos — Para começar a conceder permissões** aos seus usuários e cargas de trabalho, use as *políticas AWS gerenciadas* que concedem permissões para muitos casos de uso comuns. Eles estão disponíveis no seu Conta da AWS. Recomendamos que você reduza ainda mais as permissões definindo políticas gerenciadas pelo AWS cliente que sejam específicas para seus casos de uso. Para saber mais, consulte [Políticas gerenciadas pela AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) ou [Políticas gerenciadas pela AWS para funções de trabalho](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) no *Guia do usuário do IAM*.
+ **Aplique permissões de privilégio mínimo**: ao definir permissões com as políticas do IAM, conceda apenas as permissões necessárias para executar uma tarefa. Você faz isso definindo as ações que podem ser executadas em recursos específicos sob condições específicas, também conhecidas como *permissões de privilégio mínimo*. Para saber mais sobre como usar o IAM para aplicar permissões, consulte [Políticas e permissões no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) no *Guia do usuário do IAM*.
+ **Use condições nas políticas do IAM para restringir ainda mais o acesso**: é possível adicionar uma condição às políticas para limitar o acesso a ações e recursos. Por exemplo, é possível escrever uma condição de política para especificar que todas as solicitações devem ser enviadas usando SSL. Você também pode usar condições para conceder acesso às ações de serviço se elas forem usadas por meio de uma ação específica AWS service (Serviço da AWS), como CloudFormation. Para saber mais, consulte [Elementos da política JSON do IAM: condição](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) no *Guia do usuário do IAM*.
+ **Use o IAM Access Analyzer para validar suas políticas do IAM a fim de garantir permissões seguras e funcionais**: o IAM Access Analyzer valida as políticas novas e existentes para que elas sigam a linguagem de política do IAM (JSON) e as práticas recomendadas do IAM. O IAM Access Analyzer oferece mais de cem verificações de política e recomendações práticas para ajudar a criar políticas seguras e funcionais. Para saber mais, consulte [Validação de políticas do IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) no *Guia do Usuário do IAM*.
+ **Exigir autenticação multifator (MFA**) — Se você tiver um cenário que exija usuários do IAM ou um usuário root, ative Conta da AWS a MFA para obter segurança adicional. Para exigir MFA quando as operações de API forem chamadas, adicione condições de MFA às suas políticas. Para saber mais, consulte [Configuração de acesso à API protegido por MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) no *Guia do Usuário do IAM*.

Para saber mais sobre as práticas recomendadas do IAM, consulte [Práticas recomendadas de segurança no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) no *Guia do usuário do IAM*.

## Permitir que usuários usem o console do Amazon EBS
<a name="security_iam_id-based-policy-examples-console"></a>

Para acessar o console do Amazon Elastic Block Store, é necessário ter um conjunto mínimo de permissões. Essas permissões devem permitir que você liste e visualize detalhes sobre os recursos do Amazon EBS em seu Conta da AWS. Caso crie uma política baseada em identidade mais restritiva que as permissões mínimas necessárias, o console não funcionará como pretendido para entidades (usuários ou perfis) com essa política.

Você não precisa permitir permissões mínimas do console para usuários que estão fazendo chamadas somente para a API AWS CLI ou para a AWS API. Em vez disso, permita o acesso somente a ações que correspondam à operação de API que estiverem tentando executar.

Para garantir que usuários e funções ainda possam usar o console do Amazon EBS, anexe também o Amazon EBS `{{ConsoleAccess}}` ou a política `{{ReadOnly}}` AWS gerenciada às entidades. Para obter informações, consulte [Adicionar permissões a um usuário](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) no *Guia do usuário do IAM*.

## Permitir que os usuários visualizem suas próprias permissões
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

Este exemplo mostra como criar uma política que permita que os usuários do IAM visualizem as políticas gerenciadas e em linha anexadas a sua identidade de usuário. Essa política inclui permissões para concluir essa ação no console ou programaticamente usando a API AWS CLI ou AWS .

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

## Permitir que usuários trabalhem com volumes
<a name="iam-example-manage-volumes"></a>

**Topics**
+ [Exemplo: anexar e desanexar volumes](#iam-example-manage-volumes-attach-detach)
+ [Exemplo: criar um volume](#iam-example-manage-volumes-create)
+ [Exemplo: criar um volume com tags](#iam-example-manage-volumes-tags)
+ [Exemplo: trabalhar com volumes usando o console do Amazon EC2](#ex-volumes)

### Exemplo: anexar e desanexar volumes
<a name="iam-example-manage-volumes-attach-detach"></a>

Quando uma ação da API exige que um chamador especifique vários recursos, crie uma declaração de política que permita que os usuários acessem todos os recursos necessários. Se você precisar usar um elemento `Condition` com um ou mais desses recursos, deverá criar várias declarações conforme mostrado neste exemplo.

A política a seguir permite que os usuários anexem volumes com a tag *iam-user-name*"`volume_user`=" às instâncias com a tag "`department=dev`“e desanexem esses volumes dessas instâncias. Se você anexar essa política a um grupo do IAM, a variável da política `aws:username` fornecerá a cada usuário no grupo permissão para anexar e desanexar volumes das instâncias com uma tag chamada `volume_user` que tem o nome do usuário como um valor.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:AttachVolume",
                "ec2:DetachVolume"
            ],
            "Resource": "arn:aws:ec2:us-east-1:{{111122223333}}:instance/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/department": "dev"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:AttachVolume",
                "ec2:DetachVolume"
            ],
            "Resource": "arn:aws:ec2:us-east-1:{{111122223333}}:volume/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/volume_user": "${aws:username}"
                }
            }
        }
    ]
}
```

------

### Exemplo: criar um volume
<a name="iam-example-manage-volumes-create"></a>

A política a seguir permite que os usuários usem a ação [CreateVolume](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html)da API. O usuário terá permissão para criar um volume somente se o volume for criptografado e se seu tamanho for menor que 20 GiB.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateVolume"
            ],
            "Resource": "arn:aws:ec2:us-east-1:{{111122223333}}:volume/*",
            "Condition": {
                "NumericLessThan": {
                    "ec2:VolumeSize": "20"
                },
                "Bool": {
                    "ec2:Encrypted": "true"
                }
            }
        }
    ]
}
```

------

### Exemplo: criar um volume com tags
<a name="iam-example-manage-volumes-tags"></a>

As política a seguir inclui a chave de condição `aws:RequestTag` que requer que os usuários marquem todos os volumes que criarem com as tags `costcenter=115` e `stack=prod`. Se os usuários não passarem essas tags específicas ou não especificarem nenhuma tag, haverá talha na solicitação. 

Para ações de criação de recursos que aplicam tags, os usuários também devem ter permissões para usar a ação `CreateTags`. A segunda declaração usa a chave de condição `ec2:CreateAction` para permitir que os usuários criem tags somente no contexto de `CreateVolume`. Os usuários não podem marcar volumes existentes ou quaisquer outros recursos.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowCreateTaggedVolumes",
            "Effect": "Allow",
            "Action": "ec2:CreateVolume",
            "Resource": "arn:aws:ec2:us-east-1:{{111122223333}}:volume/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/costcenter": "115",
                    "aws:RequestTag/stack": "prod"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags"
            ],
            "Resource": "arn:aws:ec2:us-east-1:{{111122223333}}:volume/*",
            "Condition": {
                "StringEquals": {
                    "ec2:CreateAction": "CreateVolume"
                }
            }
        }
    ]
}
```

------

A política a seguir permite que os usuários criem um volume sem precisar especificar tags. A ação `CreateTags` só será avaliada se as tags forem especificadas na solicitação `CreateVolume`. Se os usuários especificam tags, a tag deverá ser `purpose=test`. Nenhuma outra tag é permitida na solicitação.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:CreateVolume",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags"
            ],
            "Resource": "arn:aws:ec2:us-east-1:{{111122223333}}:volume/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/purpose": "test",
                    "ec2:CreateAction": "CreateVolume"
                },
                "ForAllValues:StringEquals": {
                    "aws:TagKeys": "purpose"
                }
            }
        }
    ]
}
```

------

### Exemplo: trabalhar com volumes usando o console do Amazon EC2
<a name="ex-volumes"></a>

A política a seguir concede aos usuários permissão para visualizar e criar volumes, e para anexar e desanexar volumes em instâncias específicas usando o console do Amazon EC2. 

Os usuários podem anexar um volume às instâncias que tenham a tag "`purpose=test`" e também desanexar volumes dessas instâncias. Para anexar um volume usando o console do Amazon EC2, é útil que os usuários tenham permissão para usar a ação `ec2:DescribeInstances`, pois isso permite que eles selecionem uma instância de uma lista pré-preenchida na caixa de diálogo **Attach Volume **(Anexar volume). No entanto, isso também permite que os usuários visualizem todas as instâncias na página **Instances** no console, portanto, é possível omitir essa ação.

Na primeira instrução, a ação `ec2:DescribeAvailabilityZones` é necessária para garantir que um usuário possa selecionar uma zona de disponibilidade ao criar um volume.

Os usuários não podem marcar os volumes que criam (durante ou após a criação do volume).

## Permitir que usuários trabalhem com snapshots
<a name="iam-example-manage-snapshots"></a>

A seguir estão exemplos de políticas para `CreateSnapshot` (point-in-timeinstantâneo de um volume do EBS) e `CreateSnapshots` (instantâneos de vários volumes).

**Topics**
+ [Exemplo: criar um snapshot](#iam-creating-snapshot)
+ [Exemplo: criar snapshots](#iam-creating-snapshots)
+ [Exemplo: criar um snapshot com tags](#iam-creating-snapshot-with-tags)
+ [Exemplo: criar snapshots de vários volume com etiquetas](#iam-creating-snapshots-with-tags)
+ [Exemplo: Copiar snapshots](#iam-copy-snapshot)
+ [Exemplo: modificar configurações de permissão para snapshots](#iam-modifying-snapshot-with-tags)

### Exemplo: criar um snapshot
<a name="iam-creating-snapshot"></a>

A política a seguir permite que os clientes usem a ação [CreateSnapshot](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSnapshot.html)da API. O cliente poderá criar snapshots somente se o volume for criptografado e se seu tamanho for menor que 20 GiB.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:CreateSnapshot",
            "Resource": "arn:aws:ec2:us-east-1::snapshot/*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateSnapshot",
            "Resource": "arn:aws:ec2:us-east-1:{{111122223333}}:volume/*",
            "Condition": {
                "NumericLessThan": {
                    "ec2:VolumeSize": "20"
                },
                "Bool": {
                    "ec2:Encrypted": "true"
                }
            }
        }
    ]
}
```

------

### Exemplo: criar snapshots
<a name="iam-creating-snapshots"></a>

A política a seguir permite que os clientes usem a ação [CreateSnapshots](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSnapshots.html)da API. O cliente só pode criar instantâneos se todos os volumes na instância forem do tipo GP2.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect":"Allow",
         "Action":"ec2:CreateSnapshots",
         "Resource":[
"arn:aws:ec2:us-east-1::snapshot/*",
"arn:aws:ec2:*:*:instance/*"
   ]
      },
      {
         "Effect":"Allow",
         "Action":"ec2:CreateSnapshots",
         "Resource":"arn:aws:ec2:us-east-1:*:volume/*",
         "Condition":{
            "StringLikeIfExists":{
               "ec2:VolumeType":"gp2"
             }
	    }
            
      }
   ]
}
```

------

### Exemplo: criar um snapshot com tags
<a name="iam-creating-snapshot-with-tags"></a>

A política a seguir inclui a chave de condição `aws:RequestTag` que requer que o cliente aplique as tags `costcenter=115` e `stack=prod` a todos os novos snapshots. Se os usuários não passarem essas tags específicas ou não especificarem nenhuma tag, haverá talha na solicitação.

Para ações de criação de recursos que aplicam tags, os clientes também devem ter permissões para usar a ação `CreateTags`. A terceira declaração usa a chave de condição `ec2:CreateAction` para permitir que os clientes criem tags somente no contexto de `CreateSnapshot`. Os clientes não podem marcar volumes existentes nem quaisquer outros recursos.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:CreateSnapshot",
            "Resource": "arn:aws:ec2:us-east-1:{{111122223333}}:volume/*"
        },
        {
            "Sid": "AllowCreateTaggedSnapshots",
            "Effect": "Allow",
            "Action": "ec2:CreateSnapshot",
            "Resource": "arn:aws:ec2:us-east-1::snapshot/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/costcenter": "115",
                    "aws:RequestTag/stack": "prod"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "arn:aws:ec2:us-east-1::snapshot/*",
            "Condition": {
                "StringEquals": {
                    "ec2:CreateAction": "CreateSnapshot"
                }
            }
        }
    ]
}
```

------

### Exemplo: criar snapshots de vários volume com etiquetas
<a name="iam-creating-snapshots-with-tags"></a>

A política a seguir inclui a chave de condição `aws:RequestTag`, que exige que o cliente aplique as etiquetas `costcenter=115` e `stack=prod` ao criar um conjunto de snapshots de vários volumes. Se os usuários não passarem essas tags específicas ou não especificarem nenhuma tag, haverá talha na solicitação.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect":"Allow",
         "Action":"ec2:CreateSnapshots",
         "Resource":[
"arn:aws:ec2:us-east-1::snapshot/*",
"arn:aws:ec2:*:*:instance/*",
"arn:aws:ec2:*:*:volume/*"

   ]
      },
      {
         "Sid":"AllowCreateTaggedSnapshots",
         "Effect":"Allow",
         "Action":"ec2:CreateSnapshots",
         "Resource":"arn:aws:ec2:us-east-1::snapshot/*",
         "Condition":{
            "StringEquals":{
               "aws:RequestTag/costcenter":"115",
               "aws:RequestTag/stack":"prod"
            }
         }
      },
      {
         "Effect":"Allow",
         "Action":"ec2:CreateTags",
         "Resource":"arn:aws:ec2:us-east-1::snapshot/*",
         "Condition":{
            "StringEquals":{
               "ec2:CreateAction":"CreateSnapshots"
            }
         }
      }
   ]
}
```

------

A política a seguir permite que os clientes criem um snapshot sem precisar especificar tags. A ação `CreateTags` só será avaliada se as tags forem especificadas na solicitação `CreateSnapshot` ou `CreateSnapshots`. Etiquetas podem ser omitidas na solicitação. Se uma tag for especificada, ela deverá ser `purpose=test`. Nenhuma outra tag é permitida na solicitação.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect":"Allow",
         "Action":"ec2:CreateSnapshot",
         "Resource":"*"
      },
      {
         "Effect":"Allow",
         "Action":"ec2:CreateTags",
         "Resource":"arn:aws:ec2:us-east-1::snapshot/*",
         "Condition":{
            "StringEquals":{
               "aws:RequestTag/purpose":"test",
               "ec2:CreateAction":"CreateSnapshot"
            },
            "ForAllValues:StringEquals":{
               "aws:TagKeys":"purpose"
            }
         }
      }
   ]
}
```

------

A política a seguir permite que os clientes criem conjuntos de snapshots de vários volumes sem precisar especificar etiquetas. A ação `CreateTags` só será avaliada se as tags forem especificadas na solicitação `CreateSnapshot` ou `CreateSnapshots`. Etiquetas podem ser omitidas na solicitação. Se uma tag for especificada, ela deverá ser `purpose=test`. Nenhuma outra tag é permitida na solicitação.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect":"Allow",
         "Action":"ec2:CreateSnapshots",
         "Resource":"*"
      },
      {
         "Effect":"Allow",
         "Action":"ec2:CreateTags",
         "Resource":"arn:aws:ec2:us-east-1::snapshot/*",
         "Condition":{
            "StringEquals":{
               "aws:RequestTag/purpose":"test",
               "ec2:CreateAction":"CreateSnapshots"
            },
            "ForAllValues:StringEquals":{
               "aws:TagKeys":"purpose"
            }
         }
      }
   ]
}
```

------

As seguintes políticas só permitirão que snapshots sejam criados se o volume de origem for marcado com `User:username` para o cliente, e o snapshot em si for marcado com `Environment:Dev` e `User:username`. O cliente pode adicionar outras tags ao snapshot.

A seguinte política de `CreateSnapshots` só permitirá que snapshots sejam criados se o volume de origem for marcado com `User:username` para o cliente e o snapshot em si for marcado com `Environment:Dev` e `User:username`. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:CreateSnapshots",
            "Resource": "arn:aws:ec2:us-east-1:*:instance/*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateSnapshots",
            "Resource": "arn:aws:ec2:us-east-1:{{111122223333}}:volume/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/User": "${aws:username}"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateSnapshots",
            "Resource": "arn:aws:ec2:us-east-1::snapshot/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/Environment": "Dev",
                    "aws:RequestTag/User": "${aws:username}"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "arn:aws:ec2:us-east-1::snapshot/*"
        }
    ]
}
```

------

A seguinte política só permitirá a exclusão de um snapshot se ele for marcado com o Usuário:*usuário* para o cliente.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
            {
         "Effect":"Allow",
         "Action":"ec2:DeleteSnapshot",
         "Resource":"arn:aws:ec2:us-east-1::snapshot/*",
         "Condition":{
            "StringEquals":{
               "aws:ResourceTag/User":"${aws:username}"
            }
         }
      }
   ]
}
```

------

A seguinte política permite que um cliente crie um snapshot mas negará a ação se o snapshot que está sendo criado tiver uma chave de tag `value=stack`.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect":"Allow",
         "Action":[
            "ec2:CreateSnapshot",
            "ec2:CreateTags"
         ],
         "Resource":"*"
      },
      {
         "Effect":"Deny",
         "Action":"ec2:CreateSnapshot",
         "Resource":"arn:aws:ec2:us-east-1::snapshot/*",
         "Condition":{
            "ForAnyValue:StringEquals":{
               "aws:TagKeys":"stack"
            }
         }
      }
   ]
}
```

------

A seguinte política permite que um cliente crie snapshots, mas negará a ação se o snapshot que está sendo criado tiver uma chave de tag `value=stack`.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect":"Allow",
         "Action":[
            "ec2:CreateSnapshots",
            "ec2:CreateTags"
         ],
         "Resource":"*"
      },
      {
         "Effect":"Deny",
         "Action":"ec2:CreateSnapshots",
         "Resource":"arn:aws:ec2:us-east-1::snapshot/*",
         "Condition":{
            "ForAnyValue:StringEquals":{
               "aws:TagKeys":"stack"
            }
         }
      }
   ]
}
```

------

A política a seguir permite combinar várias ações em uma única política. Você só pode criar um snapshot (no contexto de `CreateSnapshots`) quando o snapshot é criado na região `us-east-1`. Você só pode criar snapshots (no contexto de `CreateSnapshots`) quando os snapshots são criados na região `us-east-1` e quando o tipo de instância é `t2*`.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
          {
         "Effect":"Allow",
         "Action":[
            "ec2:CreateSnapshots",
            "ec2:CreateSnapshot",
            "ec2:CreateTags"
         ],
         "Resource": [
            "arn:aws:ec2:*:*:instance/*",
            "arn:aws:ec2:*:*:snapshot/*",
            "arn:aws:ec2:*:*:volume/*"
         ],
         "Condition":{
            "StringEqualsIgnoreCase": {
              "ec2:Region": "us-east-1"
            },
            "StringLikeIfExists": {
              "ec2:InstanceType": ["t2.*"]
            }
         }
      }
   ]
}
```

------

### Exemplo: Copiar snapshots
<a name="iam-copy-snapshot"></a>

As permissões em nível de recurso especificadas para a **CopySnapshot**ação se aplicam tanto ao novo instantâneo quanto ao instantâneo de origem.

A política de exemplo a seguir permite que as entidades copiem snapshots somente se o novo snapshot for criado com a chave de tag de `purpose` e um valor de tag de `production` (`purpose=production`).

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowCopySnapshotWithTags",
            "Effect": "Allow",
            "Action": "ec2:CopySnapshot",
            "Resource": "arn:aws:ec2:*:{{111122223333}}:snapshot/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/purpose": "production"
                }
            }
        }
    ]
}
```

------

O exemplo de política a seguir permite que os diretores copiem instantâneos somente se o instantâneo de origem pertencer à conta. AWS `123456789012`

O exemplo de política a seguir permite que as entidades principais copiem snapshots somente se o snapshot de origem tiver sido criado com a chave de tag de `CSISnapshotName`.

```
{
    "Effect": "Allow",
    "Action": "ec2:CopySnapshot", 
    "Resource": "arn:aws:ec2:*::snapshot/${*}",
    "Condition": { 
        "StringLike": { 
            "aws:RequestTag/CSISnapshotName": "*" 
         } 
     }
},

{
    "Effect": "Allow",
    "Action": "ec2:CopySnapshot",
    "Resource": "arn:aws:ec2:*::snapshot/snap-*"
}
```

### Exemplo: modificar configurações de permissão para snapshots
<a name="iam-modifying-snapshot-with-tags"></a>

A política a seguir permite a modificação de um instantâneo somente se o instantâneo estiver marcado com`User:{{username}}`, onde {{username}} está o nome de usuário da AWS conta do cliente. A solicitação falhará se essa condição não for atendida.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
           {
         "Effect":"Allow",
         "Action":"ec2:ModifySnapshotAttribute",
         "Resource":"arn:aws:ec2:us-east-1::snapshot/*",
         "Condition":{
            "StringEquals":{
               "aws:ResourceTag/user-name":"${aws:{{username}}}"
            }
         }
      }
   ]
}
```

------