

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á.

# Visão geral do gerenciamento de permissões de acesso aos seus ElastiCache recursos
<a name="IAM.Overview"></a>

Cada AWS recurso pertence a uma AWS conta, e as permissões para criar ou acessar um recurso são regidas por políticas de permissões. Um administrador de conta pode anexar políticas de permissões a identidades do IAM (ou seja, usuários, grupos e funções). Além disso, a Amazon ElastiCache também oferece suporte para anexar políticas de permissões aos recursos. 

**nota**  
Um *administrador da conta* (ou usuário administrador) é um usuário com privilégios de administrador. Para obter mais informações, 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*.

Para conceder acesso, adicione as permissões aos seus usuários, grupos ou perfis:
+ Usuários e grupos em Centro de Identidade do AWS IAM:

  Crie um conjunto de permissões. Siga as instruções em [Criação de um conjunto de permissões](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html) no *Guia do usuário do Centro de Identidade do AWS IAM*.
+ Usuários gerenciados no IAM com provedor de identidades:

  Crie um perfil para a federação de identidades. Siga as instruções em [Criando um perfil para um provedor de identidades de terceiros (federação)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) no *Guia do Usuário do IAM*.
+ Usuários do IAM:
  + Crie um perfil que seu usuário possa assumir. Siga as instruções em [Criação de um perfil para um usuário do IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) no *Guia do usuário do IAM*.
  + (Não recomendado) Vincule uma política diretamente a um usuário ou adicione um usuário a um grupo de usuários. Siga as instruções em [Adição de permissões a um usuário (console)](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*.

**Topics**
+ [ElastiCache Recursos e operações da Amazon](#IAM.Overview.ResourcesAndOperations)
+ [Informações sobre propriedade de recursos](#access-control-resource-ownership)
+ [Gerenciar acesso aos recursos da](#IAM.Overview.ManagingAccess)
+ [AWS políticas gerenciadas para a Amazon ElastiCache](IAM.IdentityBasedPolicies.PredefinedPolicies.md)
+ [Usando políticas baseadas em identidade (políticas do IAM) para a Amazon ElastiCache](IAM.IdentityBasedPolicies.md)
+ [Permissões em nível de recurso](IAM.ResourceLevelPermissions.md)
+ [Uso de chaves de condição](IAM.ConditionKeys.md)
+ [Uso de funções vinculadas ao serviço para o Amazon ElastiCache](using-service-linked-roles.md)
+ [Permissões da API do ElastiCache: referência de ações, recursos e condições](IAM.APIReference.md)

## ElastiCache Recursos e operações da Amazon
<a name="IAM.Overview.ResourcesAndOperations"></a>

Para ver uma lista dos tipos de ElastiCache recursos e seus ARNs, consulte [Recursos definidos pela Amazon ElastiCache](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticache.html#amazonelasticache-resources-for-iam-policies) na *Referência de autorização de serviço*. Para saber com quais ações você pode especificar o ARN de cada recurso, consulte [Ações definidas pela Amazon](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticache.html#amazonelasticache-actions-as-permissions). ElastiCache

## Informações sobre propriedade de recursos
<a name="access-control-resource-ownership"></a>

*O proprietário do recurso* é a AWS conta que criou o recurso. Ou seja, o proprietário do recurso é a AWS conta da entidade principal que autentica a solicitação que cria o recurso. Uma *entidade principal* pode ser a conta raiz, um usuário do IAM ou uma função do IAM. Os seguintes exemplos mostram como isso funciona:
+ Suponha que você use as credenciais da conta raiz da sua AWS conta para criar um cluster de cache. Nesse caso, sua AWS conta é a proprietária do recurso. Em ElastiCache, o recurso é o cluster.
+ Suponha que você crie um usuário do IAM em sua AWS conta e conceda permissões para criar um cluster para esse usuário. Nesse caso, o usuário pode criar um cluster. No entanto, sua AWS conta, à qual o usuário pertence, é proprietária do recurso de cluster.
+ Suponha que você crie uma função do IAM em sua AWS conta com permissões para criar um cluster. Nesse caso, qualquer pessoa que possa assumir a função poderá criar um cluster. Sua AWS conta, à qual a função pertence, é proprietária do recurso de cluster de cache. 

## Gerenciar acesso aos recursos da
<a name="IAM.Overview.ManagingAccess"></a>

Uma *política de permissões* descreve quem tem acesso a quê. A seção a seguir explica as opções disponíveis para a criação de políticas de permissões.

**nota**  
Esta seção discute o uso do IAM no contexto da Amazon ElastiCache. Não são fornecidas informações detalhadas sobre o serviço IAM. Para obter a documentação completa do IAM, consulte [O que é o IAM?](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) no *Guia do usuário do IAM*. Para obter mais informações sobre a sintaxe e as descrições da política do IAM, consulte a [Referência de políticas do AWS IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) no *Guia do usuário do IAM*.

As políticas anexadas a uma identidade do IAM são conhecidas como políticas *baseadas em identidade* (políticas do IAM). As políticas anexadas a um recurso são chamadas de *políticas baseadas em recursos*. 

**Topics**
+ [Políticas baseadas em identidade (políticas do IAM)](#IAM.Overview.ManagingAccess.IdentityBasedPolicies)
+ [Especificar elementos da política: ações, efeitos, recursos e entidades principais](#IAM.Overview.PolicyElements)
+ [Especificar condições em uma política](#IAM.Overview.Conditions)

### Políticas baseadas em identidade (políticas do IAM)
<a name="IAM.Overview.ManagingAccess.IdentityBasedPolicies"></a>

É possível anexar políticas a identidades do IAM. Por exemplo, você pode fazer o seguinte:
+ **Anexar uma política de permissões a um usuário ou grupo na sua conta**: um administrador de conta pode usar uma política de permissões associada a determinado usuário para conceder permissões. Nesse caso, as permissões são para que esse usuário crie um ElastiCache recurso, como um cluster, um grupo de parâmetros ou um grupo de segurança.
+ **Anexar uma política de permissões a uma função**: você pode anexar uma política de permissões baseada em identidade a um perfil do IAM para conceder permissões entre contas. Por exemplo, o administrador na Conta A pode criar uma função para conceder permissões entre contas a outra AWS conta (por exemplo, Conta B) ou a um AWS serviço da seguinte forma:

  1. Um administrador da Conta A cria uma função do IAM e anexa uma política de permissões à função que concede permissões em recursos da Conta A.

  1. Um administrador da Conta A anexa uma política de confiança à função identificando a Conta B como a entidade principal, que pode assumir a função. 

  1. O administrador da Conta B pode então delegar permissões para assumir a função a qualquer usuário na Conta B. Isso permite que os usuários da Conta B criem ou acessem recursos na Conta A. Em alguns casos, talvez você queira conceder permissões a um AWS serviço para assumir a função. Para oferecer suporte a essa abordagem, o principal da política de confiança também pode ser um principal de serviço da AWS. 

  Para obter mais informações sobre o uso do IAM para delegar permissões, consulte [Gerenciamento de acesso](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) no *Guia do usuário do IAM*.

Veja a seguir um exemplo de política que permite que um usuário execute a `DescribeCacheClusters` ação AWS em sua conta. ElastiCache também suporta a identificação de recursos específicos usando o recurso ARNs para ações de API. Essa abordagem também é chamada de permissões no nível do recurso. 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DescribeCacheClusters",
            "Effect": "Allow",
            "Action": [
                "elasticache:DescribeCacheClusters"
            ],
            "Resource": "arn:aws:iam::*:role/*"
        }
    ]
}
```

------

Para obter mais informações sobre o uso de políticas baseadas em identidade com ElastiCache, consulte. [Usando políticas baseadas em identidade (políticas do IAM) para a Amazon ElastiCache](IAM.IdentityBasedPolicies.md) Para obter mais informações sobre usuários, grupos, funções e permissões, consulte [Identidades (usuários, grupos e funções)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) no *Guia do usuário do IAM*.

### Especificar elementos da política: ações, efeitos, recursos e entidades principais
<a name="IAM.Overview.PolicyElements"></a>

Para cada ElastiCache recurso da Amazon (consulte[ElastiCache Recursos e operações da Amazon](#IAM.Overview.ResourcesAndOperations)), o serviço define um conjunto de operações de API (consulte [Ações](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_Operations.html)). Para conceder permissões para essas operações de API, ElastiCache defina um conjunto de ações que você pode especificar em uma política. Por exemplo, para o recurso de ElastiCache cluster, as seguintes ações são definidas: `CreateCacheCluster``DeleteCacheCluster`, `DescribeCacheCluster` e. A execução de uma operação de API pode exigir permissões para mais de uma ação.

Estes são os elementos de política mais básicos:
+ **Recurso**: em uma política, você usa um Amazon Resource Name (ARN – Nome do recurso da Amazon) para identificar o recurso a que a política se aplica. Para obter mais informações, consulte [ElastiCache Recursos e operações da Amazon](#IAM.Overview.ResourcesAndOperations).
+ **Ação**: você usa palavras-chave de ação para identificar operações de recursos que deseja permitir ou negar. Por exemplo, dependendo do especificado`Effect`, a `elasticache:CreateCacheCluster` permissão permite ou nega ao usuário permissões para realizar a ElastiCache `CreateCacheCluster` operação da Amazon.
+ **Efeito**: você especifica o efeito quando o usuário solicita a ação específica, que pode ser permitir ou negar. Se você não conceder (permitir) explicitamente acesso a um recurso, o acesso estará implicitamente negado. Você também pode negar acesso explicitamente a um recurso. Por exemplo, você poderia fazer isso para garantir que um usuário não possa acessar o recurso, mesmo se uma política diferente conceder o acesso.
+ **Entidade principal**: em políticas baseadas em identidade (políticas do IAM), o usuário ao qual a política é anexada é a entidade principal implícita. Para as políticas baseadas em recursos, você especifica quais usuários, contas, serviços ou outras entidades deseja que recebam permissões (isso se aplica somente a políticas baseadas em recursos). 

Para saber mais sobre a sintaxe e as descrições de políticas do IAM, consulte a [Referência de políticas do AWS IAM da ](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) no *Guia do usuário do IAM*.

Para ver uma tabela mostrando todas as ações de ElastiCache API da Amazon, consulte[Permissões da API do ElastiCache: referência de ações, recursos e condições](IAM.APIReference.md).

### Especificar condições em uma política
<a name="IAM.Overview.Conditions"></a>

Ao conceder permissões, você pode usar a linguagem da política do IAM para especificar as condições de quando uma política deverá entrar em vigor. Por exemplo, é recomendável aplicar uma política somente após uma data específica. Para obter mais informações sobre como especificar condições em uma linguagem de política, consulte [Condition](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Condition) no *Guia do usuário do IAM*. 

Para expressar condições, você usa chaves de condição predefinidas. Para usar chaves ElastiCache de condição específicas, consulte[Uso de chaves de condição](IAM.ConditionKeys.md). Existem chaves AWS de condição abrangentes que você pode usar conforme apropriado. Para obter uma lista completa AWS de chaves abrangentes, consulte [Chaves disponíveis para condições](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys) no *Guia do usuário do IAM*. 



# AWS políticas gerenciadas para a Amazon ElastiCache
<a name="IAM.IdentityBasedPolicies.PredefinedPolicies"></a>





Uma política AWS gerenciada é uma política autônoma criada e administrada por AWS.AWS as políticas gerenciadas são projetadas para fornecer permissões para muitos casos de uso comuns, para que você possa começar a atribuir permissões a usuários, grupos e funções.

Lembre-se de que as políticas AWS gerenciadas podem não conceder permissões de privilégio mínimo para seus casos de uso específicos porque estão disponíveis para uso de todos os AWS clientes. Recomendamos que você reduza ainda mais as permissões definindo as [ políticas gerenciadas pelo cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies) que são específicas para seus casos de uso.

Você não pode alterar as permissões definidas nas políticas AWS gerenciadas. Se AWS atualizar as permissões definidas em uma política AWS gerenciada, a atualização afetará todas as identidades principais (usuários, grupos e funções) às quais a política está anexada.AWSé mais provável que atualize uma política AWS gerenciada quando uma nova AWS service (Serviço da AWS)é lançada ou novas operações de API são disponibilizadas para serviços existentes.

Para mais informações, consulte [Políticas gerenciadas pela AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) no *Guia do usuário do IAM*.













## AWS política gerenciada: ElastiCacheServiceRolePolicy
<a name="security-iam-awsmanpol-ElastiCacheServiceRolePolicy"></a>

Você não pode se vincular ElastiCacheServiceRolePolicy às suas entidades do IAM. Essa política está vinculada a uma função vinculada ao serviço que permite ElastiCache realizar ações em seu nome.

Essa política permite ElastiCache gerenciar AWS recursos em seu nome conforme necessário para gerenciar seu cache:
+ `ec2`— Gerencie recursos EC2 de rede para se conectar aos nós de cache, incluindo endpoints VPC (para caches sem servidor), interfaces de rede elásticas () (para clusters baseados em nósENIs) e grupos de segurança.
+ `cloudwatch`— Emitir dados métricos do serviço para o. CloudWatch
+ `outposts`— Permitir a criação de nós de cache em AWS Outposts.

Você pode encontrar a [ElastiCacheServiceRolePolicy](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/ElastiCacheServiceRolePolicy)política no console do IAM e [ElastiCacheServiceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/ElastiCacheServiceRolePolicy.html)no *Guia de referência de políticas AWS gerenciadas*.

## AWS política gerenciada: AmazonElastiCacheFullAccess
<a name="security-iam-awsmanpol-AmazonElastiCacheFullAccess"></a>

É possível anexar a política `AmazonElastiCacheFullAccess` às suas identidades do IAM.

Essa política permite que os diretores tenham acesso total ao ElastiCache uso do AWS Management Console:
+ `elasticache`— Acesse tudo APIs.
+ `iam`: crie uma função vinculada ao serviço necessária para a operação de serviço.
+ `ec2`— Descreva os EC2 recursos dependentes necessários para a criação de cache (VPC, sub-rede, grupo de segurança) e permita a criação de endpoints de VPC (para caches sem servidor).
+ `kms`— Permitir o uso do formulário gerenciado pelo cliente CMKs . encryption-at-rest
+ `cloudwatch`— Permita o acesso às ElastiCache métricas para exibir métricas no console.
+ `application-autoscaling`: permita o acesso para descrever as políticas de escalonamento automático para caches.
+ `logs`: usado para preencher fluxos de log para a funcionalidade de entrega de logs no console.
+ `firehose`: usado para preencher fluxos de log de entrega para a funcionalidade de entrega de logs no console.
+ `s3`: usado para preencher buckets S3 para a funcionalidade de restauração de instantâneos no console.
+ `outposts`— Usado para preencher AWS Outposts para criação de cache no console.
+ `sns`: usado para preencher tópicos do SNS para funcionalidade de notificação no console.

Você pode encontrar a [AmazonElastiCacheFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AmazonElastiCacheFullAccess)política no console do IAM e [AmazonElastiCacheFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonElastiCacheFullAccess.html)no *Guia de referência de políticas AWS gerenciadas*.

## AWS política gerenciada: AmazonElastiCacheReadOnlyAccess
<a name="security-iam-awsmanpol-AmazonElastiCacheReadOnlyAccess"></a>

É possível anexar a política `AmazonElastiCacheReadOnlyAccess` às suas identidades do IAM.

Essa política permite que os diretores tenham acesso somente para leitura ao ElastiCache uso do AWS Management Console:
+ `elasticache`— Acesso somente para leitura `Describe` APIs.

Você pode encontrar a [AmazonElastiCacheReadOnlyAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AmazonElastiCacheReadOnlyAccess)política no console do IAM e [AmazonElastiCacheReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonElastiCacheReadOnlyAccess.html)no *Guia de referência de políticas AWS gerenciadas*.

## ElastiCache atualizações nas políticas AWS gerenciadas
<a name="security-iam-awsmanpol-updates"></a>

Veja detalhes sobre as atualizações das políticas AWS gerenciadas ElastiCache desde que esse serviço começou a rastrear essas alterações. Para receber alertas automáticos sobre alterações nessa página, assine o feed RSS na página Histórico do ElastiCache documento.




| Alteração | Descrição | Data | 
| --- | --- | --- | 
|  [AmazonElastiCacheFullAccess](#security-iam-awsmanpol-AmazonElastiCacheFullAccess): atualizar para uma política existente  |  ElastiCache adicionou novas permissões para permitir o dimensionamento vertical para a ação`elasticache:ModifyCacheCluster`. MemCached  | 27 de março de 2025 | 
|  [AmazonElastiCacheFullAccess](#security-iam-awsmanpol-AmazonElastiCacheFullAccess) – atualização para uma política existente  |  ElastiCache adicionou novas permissões para permitir o gerenciamento de caches sem servidor e para permitir o uso de todos os recursos do serviço por meio do console.  | 27 de novembro de 2023 | 
|  [ElastiCacheServiceRolePolicy](#security-iam-awsmanpol-ElastiCacheServiceRolePolicy) – atualização para uma política existente  |  ElastiCache adicionou novas permissões para permitir o gerenciamento de VPC endpoints para recursos de cache sem servidor.  | 27 de novembro de 2023 | 
|  ElastiCache começou a rastrear alterações  |  ElastiCache começou a rastrear as mudanças em suas políticas AWS gerenciadas.  | 7 de fevereiro de 2020 | 

# Usando políticas baseadas em identidade (políticas do IAM) para a Amazon ElastiCache
<a name="IAM.IdentityBasedPolicies"></a>

Este tópico fornece exemplos de políticas baseadas em identidade em que um administrador de conta pode anexar políticas de permissões a identidades do IAM (ou seja, usuários, grupos e funções). 

**Importante**  
Recomendamos que você leia primeiro os tópicos que explicam os conceitos básicos e as opções para gerenciar o acesso aos ElastiCache recursos da Amazon. Para obter mais informações, consulte [Visão geral do gerenciamento de permissões de acesso aos seus ElastiCache recursos](IAM.Overview.md). 

As seções neste tópico abrangem o seguinte:
+ [AWS políticas gerenciadas para a Amazon ElastiCache](IAM.IdentityBasedPolicies.PredefinedPolicies.md)
+ [Exemplos de política gerenciada pelo cliente](#IAM.IdentityBasedPolicies.CustomerManagedPolicies)

A seguir é mostrado um exemplo de política de permissões ao usar o Redis OSS.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowClusterPermissions",
            "Effect": "Allow",
            "Action": [
                "elasticache:CreateServerlessCache",
                "elasticache:CreateCacheCluster",
                "elasticache:DescribeServerlessCaches",
                "elasticache:DescribeReplicationGroups",
                "elasticache:DescribeCacheClusters",
                "elasticache:ModifyServerlessCache",
                "elasticache:ModifyReplicationGroup",
                "elasticache:ModifyCacheCluster"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowUserToPassRole",
            "Effect": "Allow",
            "Action": [ "iam:PassRole" ],
            "Resource": "arn:aws:iam::123456789012:role/EC2-roles-for-cluster"
        }
    ]
}
```

------

A seguir, é mostrado um exemplo de política de permissões ao usar o Memcached.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Sid": "AllowClusterPermissions",
        "Effect": "Allow",
        "Action": [
            "elasticache:CreateServerlessCache",
            "elasticache:CreateCacheCluster",
            "elasticache:DescribeServerlessCaches",
            "elasticache:DescribeCacheClusters",
            "elasticache:ModifyServerlessCache",
            "elasticache:ModifyCacheCluster"
        ],
        "Resource": "*"
    },
    {
        "Sid": "AllowUserToPassRole",
        "Effect": "Allow",
        "Action": [ "iam:PassRole" ],
        "Resource": "arn:aws:iam::123456789012:role/EC2-roles-for-cluster"
    }
    ]
}
```

------

A política tem duas instruções:
+ A primeira declaração concede permissões para as ElastiCache ações da Amazon (`elasticache:Create*`,`elasticache:Describe*`,`elasticache:Modify*`) 
+ A segunda instrução concede permissões para a ação do IAM (`iam:PassRole`) no nome da função do IAM especificado no final do valor `Resource`.

A política não especifica o elemento `Principal` porque, em uma política baseada em identidade, a entidade principal que obtém as permissões não é especificada. Quando você anexar uma política um usuário, o usuário será a entidade principal implícita. Quando você anexa uma política de permissões a um perfil do IAM, a entidade principal identificada na política de confiança do perfil obtém as permissões. 

Para ver uma tabela mostrando todas as ações de ElastiCache API da Amazon e os recursos aos quais elas se aplicam, consulte[Permissões da API do ElastiCache: referência de ações, recursos e condições](IAM.APIReference.md). 

## Exemplos de política gerenciada pelo cliente
<a name="IAM.IdentityBasedPolicies.CustomerManagedPolicies"></a>

Se você não estiver usando uma política padrão e optar por usar uma política gerenciada personalizada, realize uma destas ações: Você deve ter permissões para chamar `iam:createServiceLinkedRole` (para obter mais informações, consulte [Exemplo 4: permitir que um usuário chame a CreateServiceLinkedRole API IAM](#create-service-linked-role-policy)). Ou você deveria ter criado uma função ElastiCache vinculada ao serviço. 

Quando combinadas com as permissões mínimas necessárias para usar o ElastiCache console da Amazon, as políticas de exemplo nesta seção concedem permissões adicionais. Os exemplos também são relevantes para o AWS SDKs e AWS CLI o.

Para obter instruções sobre como configurar usuários e grupos do IAM, consulte [Criação do seu primeiro usuário do IAM e grupo de administradores](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html) no *Guia do usuário do IAM*. 

**Importante**  
Sempre teste suas políticas do IAM completamente antes de usá-las em produção. Algumas ElastiCache ações que parecem simples podem exigir outras ações para apoiá-las quando você estiver usando o ElastiCache console. Por exemplo, `elasticache:CreateCacheCluster` concede permissões para criar ElastiCache clusters. No entanto, para realizar essa operação, o ElastiCache console usa várias `List` ações `Describe` para preencher as listas do console.

**Topics**
+ [Exemplo 1: permitir que um usuário tenha acesso somente de leitura aos recursos ElastiCache](#example-allow-list-current-elasticache-resources)
+ [Exemplo 2: Permitir que um usuário execute tarefas comuns de administrador do ElastiCache sistema](#example-allow-specific-elasticache-actions)
+ [Exemplo 3: permitir que um usuário acesse todas as ações ElastiCache da API](#allow-unrestricted-access)
+ [Exemplo 4: permitir que um usuário chame a CreateServiceLinkedRole API IAM](#create-service-linked-role-policy)
+ [Exemplo 5: permitir que um usuário se conecte ao cache sem servidor usando a autenticação do IAM](#iam-connect-policy)

### Exemplo 1: permitir que um usuário tenha acesso somente de leitura aos recursos ElastiCache
<a name="example-allow-list-current-elasticache-resources"></a>

A política a seguir concede ElastiCache ações de permissões que permitem ao usuário listar recursos. Normalmente, você anexa esse tipo de política de permissões a um grupo de gerentes.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[{
      "Sid": "ECReadOnly",
      "Effect":"Allow",
      "Action": [
          "elasticache:Describe*",
          "elasticache:List*"],
      "Resource":"*"
      }
   ]
}
```

------

### Exemplo 2: Permitir que um usuário execute tarefas comuns de administrador do ElastiCache sistema
<a name="example-allow-specific-elasticache-actions"></a>

Entre as tarefas do administrador do sistema comuns estão a modificação de recursos. Um administrador do sistema também pode querer obter informações sobre eventos do ElastiCache . A política a seguir concede permissões ao usuário para realizar ElastiCache ações para essas tarefas comuns do administrador do sistema. Normalmente, você anexa esse tipo de política de permissões ao grupo de administradores do sistema.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[{
      "Sid": "ECAllowMutations",
      "Effect":"Allow",
      "Action":[
          "elasticache:Modify*",
          "elasticache:Describe*",
          "elasticache:ResetCacheParameterGroup"
      ],
      "Resource":"*"
      }
   ]
}
```

------

### Exemplo 3: permitir que um usuário acesse todas as ações ElastiCache da API
<a name="allow-unrestricted-access"></a>

A política a seguir permite que um usuário acesse todas as ElastiCache ações. Recomendamos que você conceda esse tipo de política de permissões apenas a um usuário administrador. 

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[{
      "Sid": "ECAllowAll",
      "Effect":"Allow",
      "Action":[
          "elasticache:*" 
      ],
      "Resource":"*"
      }
   ]
}
```

------

### Exemplo 4: permitir que um usuário chame a CreateServiceLinkedRole API IAM
<a name="create-service-linked-role-policy"></a>

A política a seguir permite que o usuário chame a API `CreateServiceLinkedRole` do IAM. Recomendamos que você conceda esse tipo de política de permissões ao usuário que invoca operações ElastiCache mutativas.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":[
    {
      "Sid":"CreateSLRAllows",
      "Effect":"Allow",
      "Action":[
        "iam:CreateServiceLinkedRole"
      ],
      "Resource":"*",
      "Condition":{
        "StringLike":{
        "iam:AWSServiceName":"elasticache.amazonaws.com"
        }
      }
    }
  ]
}
```

------

### Exemplo 5: permitir que um usuário se conecte ao cache sem servidor usando a autenticação do IAM
<a name="iam-connect-policy"></a>

A política a seguir permite que qualquer usuário se conecte a qualquer cache sem servidor usando a autenticação do IAM entre 2023-04-01 e 2023-06-30.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement" :
  [
    {
      "Effect" : "Allow",
      "Action" : ["elasticache:Connect"],
      "Resource" : [
        "arn:aws:elasticache:us-east-1:123456789012:serverlesscache:*"
      ],
      "Condition": {
        "DateGreaterThan": {"aws:CurrentTime": "2023-04-01T00:00:00Z"},
        "DateLessThan": {"aws:CurrentTime": "2023-06-30T23:59:59Z"}
      }
    },
    {
      "Effect" : "Allow",
      "Action" : ["elasticache:Connect"],
      "Resource" : [
        "arn:aws:elasticache:us-east-1:123456789012:user:*"
      ]
    }
  ]
}
```

------

# Permissões em nível de recurso
<a name="IAM.ResourceLevelPermissions"></a>

Você pode restringir o escopo das permissões especificando recursos em uma política do IAM. Muitas ações de API do ElastiCache oferecem suporte a um tipo de recurso que varia de acordo com o comportamento da ação. Cada instrução de política do IAM concede permissão a uma ação realizada em um recurso. Quando a ação não atua em um recurso indicado, ou quando você concede permissão para executar a ação em todos os recursos, o valor do recurso na política é um curinga (\$1). Para muitas ações de API, restrinja os recursos que um usuário pode modificar especificando o Amazon Resource Name (ARN – Nome de recurso da Amazon) de um recurso ou um padrão de ARN correspondente a vários recursos. Para restringir as permissões por recurso especifique o recurso por ARN.

Para ver uma lista dos tipos de recursos do ElastiCache e seus ARNs, consulte [Resources Defined by Amazon ElastiCache](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticache.html#amazonelasticache-resources-for-iam-policies) na *Referência de autorização do serviço*. Para saber com quais ações você pode especificar o ARN de cada recurso, consulte [Actions Defined by Amazon ElastiCache](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticache.html#amazonelasticache-actions-as-permissions).

**Topics**
+ [Exemplo 1: permitir que um usuário tenha acesso total a tipos de recurso específicos do ElastiCache](#example-allow-list-current-elasticache-resources-resource)
+ [Exemplo 2: negue a um usuário acesso a um cache sem servidor.](#example-allow-specific-elasticache-actions-resource)

## Exemplo 1: permitir que um usuário tenha acesso total a tipos de recurso específicos do ElastiCache
<a name="example-allow-list-current-elasticache-resources-resource"></a>

A seguinte política permite explicitamente todos os recursos do tipo cache sem servidor.

```
{
        "Sid": "Example1",
        "Effect": "Allow",
        "Action": "elasticache:*",
        "Resource": [
             "arn:aws:elasticache:us-east-1:account-id:serverlesscache:*"
        ]
}
```

## Exemplo 2: negue a um usuário acesso a um cache sem servidor.
<a name="example-allow-specific-elasticache-actions-resource"></a>

O exemplo a seguir nega explicitamente o acesso a um determinado cache sem servidor.

```
{
        "Sid": "Example2",
        "Effect": "Deny",
        "Action": "elasticache:*",
        "Resource": [
            "arn:aws:elasticache:us-east-1:account-id:serverlesscache:name"
        ]
}
```

# Uso de chaves de condição
<a name="IAM.ConditionKeys"></a>

Você pode especificar as condições que determinam como uma política do IAM entra em vigor. Em ElastiCache, você pode usar o `Condition` elemento de uma política JSON para comparar chaves no contexto da solicitação com valores de chave que você especifica em sua política. Para obter mais informações, consulte [Elementos da política JSON do IAM: condição](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html).

Para ver uma lista de chaves de ElastiCache condição, consulte [Chaves de condição da Amazon ElastiCache](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticache.html#amazonelasticache-policy-keys) na *Referência de autorização de serviço*.

Para obter uma lista de todas as chaves de condição globais, consulte [Chaves de contexto de condição global da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html).

**Usando ElastiCache com chaves de condição AWS globais**

Ao usar [chaves de condição AWS globais](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) que exigem ElastiCache o [Principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services), use uma `OR` condição com *os dois* Principais: `elasticache.amazonaws.com` e. `ec.amazonaws.com`

**nota**  
Se você não adicionar os dois Diretores ElastiCache, a ação pretendida de “Permitir” ou “Negar” não será aplicada corretamente para nenhum recurso listado em sua política.

 Exemplo de política com a chave de condição global `aws:CalledVia`:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:*", 
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringLike": {
          "aws:CalledVia": [
            "ec.amazonaws.com",
            "elasticache.amazonaws.com"
          ]
        }
      }
    }
  ]
}
```

------

## Especificação de condições: uso de chaves de condição
<a name="IAM.SpecifyingConditions"></a>

Para implementar um controle refinado, grave uma política de permissões do IAM que especifique condições para controlar um conjunto de parâmetros individuais em determinadas solicitações. Em seguida, aplique a política aos usuários, grupos ou funções do IAM que você criar usando o console do IAM. 

Para aplicar uma condição, adicione as informações da condição à declaração de política do IAM. No exemplo a seguir, você especifica a condição de que qualquer cluster baseado em nós criado será do tipo de nó `cache.r5.large`. 

**nota**  
Para criar elementos `Condition` usando chaves de condição do tipo `String`, use os operadores de condição que não diferenciam maiúsculas de minúsculas `StringEqualsIgnoreCase` ou `StringNotEqualsIgnoreCase` para comparar uma chave com um valor de string.
ElastiCache processa os argumentos de entrada para `CacheNodeType` e sem `CacheParameterGroupName` distinção entre maiúsculas e minúsculas. Por esse motivo, os operadores de condição de string `StringEqualsIgnoreCase` e `StringNotEqualsIgnoreCase` devem ser usados nas políticas de permissões que fazem referência a eles.

O exemplo a seguir mostra um exemplo dessa política de permissões ao usar o Valkey ou o Redis OSS.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "elasticache:CreateCacheCluster",
                "elasticache:CreateReplicationGroup"
            ],
            "Resource": [
                "arn:aws:elasticache:*:*:parametergroup:*",
                "arn:aws:elasticache:*:*:subnetgroup:*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "elasticache:CreateCacheCluster",
                "elasticache:CreateReplicationGroup"
            ],
            "Resource": [
                "arn:aws:elasticache:*:*:cluster:*",
                "arn:aws:elasticache:*:*:replicationgroup:*"
            ],
            "Condition": {
                "StringEquals": {
                    "elasticache:CacheNodeType": [
                        "cache.r5.large"
                    ]
                }
            }
        }
    ]
}
```

------

A seguir, mostramos um exemplo dessa política de permissões ao usar o Memcached.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "elasticache:CreateCacheCluster"
            ],
            "Resource": [
                "arn:aws:elasticache:*:*:parametergroup:*",
                "arn:aws:elasticache:*:*:subnetgroup:*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "elasticache:CreateCacheCluster"
            ],
            "Resource": [
                "arn:aws:elasticache:*:*:cluster:*"
            ],
            "Condition": {
                "StringEquals": {
                    "elasticache:CacheNodeType": [
                        "cache.r5.large"
                    ]
                }
            }
        }
    ]
}
```

------

Para obter mais informações, consulte [Marcando seus recursos ElastiCache](Tagging-Resources.md). 

Para obter mais informações sobre a utilização de operadores de condição de política, consulte [Permissões da API do ElastiCache: referência de ações, recursos e condições](IAM.APIReference.md).

## Políticas de exemplo: uso de condições para controle de acesso refinado
<a name="IAM.ExamplePolicies"></a>

Esta seção mostra exemplos de políticas para implementar um controle de acesso refinado nos parâmetros listados anteriormente. ElastiCache 

1. **elasticacheMaximumDataStorage:** especifique o armazenamento máximo de dados de um cache sem servidor. Usando as condições fornecidas, o cliente não pode criar caches que possam armazenar mais do que uma quantidade específica de dados.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowDependentResources",
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateServerlessCache"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:serverlesscachesnapshot:*",
                   "arn:aws:elasticache:*:*:snapshot:*",
                   "arn:aws:elasticache:*:*:usergroup:*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateServerlessCache"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:serverlesscache:*"
               ],
               "Condition": {
                   "NumericLessThanEquals": {
                       "elasticache:MaximumDataStorage": "30"
                   },
                   "StringEquals": {
                       "elasticache:DataStorageUnit": "GB"
                   }
               }
           }
       ]
   }
   ```

------

1. **elastiCache:Maximum ECPUPer Second**: especifique o valor máximo de ECPU por segundo de um cache sem servidor. Usando as condições fornecidas, o cliente não pode criar caches que possam executar mais do que um número específico de ECPUs por segundo.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowDependentResources",
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateServerlessCache"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:serverlesscachesnapshot:*",
                   "arn:aws:elasticache:*:*:snapshot:*",
                   "arn:aws:elasticache:*:*:usergroup:*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateServerlessCache"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:serverlesscache:*"
               ],
               "Condition": {
                   "NumericLessThanEquals": {
                       "elasticache:MaximumECPUPerSecond": "100000"
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticacheCacheNodeType:** Especifique quais NodeType (is) um usuário pode criar. Usando as condições fornecidas, o cliente pode especificar um valor único ou um intervalo para um tipo de nó.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
            {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
   
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:cluster:*",
                   "arn:aws:elasticache:*:*:replicationgroup:*"
               ],
               "Condition": {
                   "StringEquals": {
                       "elasticache:CacheNodeType": [
                           "cache.t2.micro",
                           "cache.t2.medium"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticache:CacheNodeType:** Com o Memcached, especifique quais NodeType (is) um usuário pode criar. Usando as condições fornecidas, o cliente pode especificar um valor único ou um intervalo para um tipo de nó.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
            {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
   
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:cluster:*"
               ],
               "Condition": {
                   "StringEquals": {
                       "elasticache:CacheNodeType": [
                           "cache.t2.micro",
                           "cache.t2.medium"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticacheNumNodeGroups:** Crie um grupo de replicação com menos de 20 grupos de nós.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
            {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
   
           {
               "Effect": "Allow",
               "Action": [
               	"elasticache:CreateReplicationGroup"
               ],
               "Resource": [
               	"arn:aws:elasticache:*:*:replicationgroup:*"
               ],
               "Condition": {
                   "NumericLessThanEquals": {
                       "elasticache:NumNodeGroups": "20"
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticacheReplicasPerNodeGroup:** especifique as réplicas por nó entre 5 e 10.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
            {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
   
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:replicationgroup:*"
               ],
               "Condition": {
                   "NumericGreaterThanEquals": {
                       "elasticache:ReplicasPerNodeGroup": "5"
                   },
                   "NumericLessThanEquals": {
                       "elasticache:ReplicasPerNodeGroup": "10"
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticache:EngineVersion:** Especifique o uso da versão 5.0.6 do mecanismo.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
        {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
   
           {
              "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:cluster:*",
                   "arn:aws:elasticache:*:*:replicationgroup:*"
               ],
               "Condition": {
                   "StringEquals": {
                       "elasticache:EngineVersion": "5.0.6"
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticacheEngineVersion:** Especifique o uso do mecanismo Memcached versão 1.6.6

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
        {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
   
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:cluster:*"
               ],
               "Condition": {
                   "StringEquals": {
                       "elasticache:EngineVersion": "1.6.6"
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticacheEngineType:** especifique usando somente um mecanismo OSS Valkey ou Redis.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
            {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
   
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:cluster:*",
                   "arn:aws:elasticache:*:*:replicationgroup:*"
               ],
               "Condition": {
                   "StringEquals": {
                       "elasticache:EngineType": "redis"
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticacheAtRestEncryptionEnabled:** especifique que os grupos de replicação seriam criados somente com a criptografia ativada.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
   
            {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
   
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:replicationgroup:*"
               ],
               "Condition": {
                   "Bool": {
                       "elasticache:AtRestEncryptionEnabled": "true"
                   }
               }
           }
       ]
   }
   ```

------

1. **dor elástica: TransitEncryptionEnabled**

   1. Defina a chave de `elasticache:TransitEncryptionEnabled` condição `false` para a [CreateReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html)ação para especificar que grupos de replicação só podem ser criados quando o TLS não está sendo usado:

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "elasticache:CreateReplicationGroup"
                  ],
                  "Resource": [
                      "arn:aws:elasticache:*:*:parametergroup:*",
                      "arn:aws:elasticache:*:*:subnetgroup:*"
                  ]
              },
      
              {
                  "Effect": "Allow",
                  "Action": [
                      "elasticache:CreateReplicationGroup"
                  ],
                  "Resource": [
                      "arn:aws:elasticache:*:*:replicationgroup:*"
                  ],
                  "Condition": {
                      "Bool": {
                          "elasticache:TransitEncryptionEnabled": "false"
                      }
                  }
              }
          ]
      }
      ```

------

      Quando a chave de `elasticache:TransitEncryptionEnabled` condição é definida `false` em uma política para a [CreateReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html)ação, uma `CreateReplicationGroup` solicitação só será permitida se o TLS não estiver sendo usado (ou seja, se a solicitação não incluir um `TransitEncryptionEnabled` parâmetro definido como `true` ou um `TransitEncryptionMode` parâmetro definido como). `required`

   1. Defina a chave de `elasticache:TransitEncryptionEnabled` condição `true` para que a [CreateReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html)ação especifique que grupos de replicação só podem ser criados quando o TLS está sendo usado:

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "elasticache:CreateReplicationGroup"
                  ],
                  "Resource": [
                      "arn:aws:elasticache:*:*:parametergroup:*",
                      "arn:aws:elasticache:*:*:subnetgroup:*"
                  ]
              },
      
              {
                  "Effect": "Allow",
                  "Action": [
                      "elasticache:CreateReplicationGroup"
                  ],
                  "Resource": [
                      "arn:aws:elasticache:*:*:replicationgroup:*"
                  ],
                  "Condition": {
                      "Bool": {
                          "elasticache:TransitEncryptionEnabled": "true"
                      }
                  }
              }
          ]
      }
      ```

------

      Quando a chave de `elasticache:TransitEncryptionEnabled` condição é definida `true` em uma política para a [CreateReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html)ação, uma `CreateReplicationGroup` solicitação só será permitida se a solicitação incluir um `TransitEncryptionEnabled` parâmetro definido como `true` e um `TransitEncryptionMode` parâmetro definido como`required`.

   1. Defina `elasticache:TransitEncryptionEnabled` como `true` para a ação `ModifyReplicationGroup` a fim de especificar que os grupos de replicação só podem ser modificados quando o TLS está sendo usado:

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [               
                      "elasticache:ModifyReplicationGroup"
                  ],
                  "Resource": [               
                      "arn:aws:elasticache:*:*:replicationgroup:*"
                  ],
                  "Condition": {
                      "BoolIfExists": {
                          "elasticache:TransitEncryptionEnabled": "true"
                      }
                  }
              }
          ]
      }
      ```

------

      Quando a chave de `elasticache:TransitEncryptionEnabled` condição é definida `true` em uma política para a [ModifyReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroup.html)ação, uma `ModifyReplicationGroup` solicitação só será permitida se a solicitação incluir um `TransitEncryptionMode` parâmetro definido como`required`. Opcionalmente, o parâmetro `TransitEncryptionEnabled` definido como `true` também pode ser incluído, mas não é necessário nesse caso para habilitar o TLS.

1. **elasticacheAutomaticFailoverEnabled:** especifique que os grupos de replicação seriam criados somente com o failover automático ativado.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
            {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
   
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:replicationgroup:*"
               ],
               "Condition": {
                   "Bool": {
                       "elasticache:AutomaticFailoverEnabled": "true"
                   }
               }
           }
       ]
   }
   ```

------

1. **elastiCache:multi AZEnabled**: especifique que grupos de replicação não podem ser criados com o Multi-AZ desativado.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
            {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
           {
               "Effect": "Deny",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:cluster:*",
                   "arn:aws:elasticache:*:*:replicationgroup:*"
               ],
               "Condition": {
                   "Bool": {
                       "elasticache:MultiAZEnabled": "false"
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticacheClusterModeEnabled:** especifique que grupos de replicação só podem ser criados com o modo de cluster ativado.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
            {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
   
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:replicationgroup:*"
               ],
               "Condition": {
                   "Bool": {
                       "elasticache:ClusterModeEnabled": "true"
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticacheAuthTokenEnabled:** especifique que grupos de replicação só podem ser criados com o token AUTH ativado.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
   
            {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
   
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:cluster:*",
                   "arn:aws:elasticache:*:*:replicationgroup:*"
               ],
               "Condition": {
                   "Bool": {
                       "elasticache:AuthTokenEnabled": "true"
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticacheSnapshotRetentionLimit:** especifique o número de dias (ou mínimo/máximo) para manter o instantâneo. A política abaixo impõe o armazenamento de backups por pelo menos 30 dias.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
   
            {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
   
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:CreateReplicationGroup",
                   "elasticache:CreateServerlessCache"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:cluster:*",
                   "arn:aws:elasticache:*:*:replicationgroup:*",
                   "arn:aws:elasticache:*:*:serverlesscache:*"
               ],
               "Condition": {
                   "NumericGreaterThanEquals": {
                       "elasticache:SnapshotRetentionLimit": "30"
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticacheKmsKeyId:** especifique o uso de chaves AWS KMS gerenciadas pelo cliente.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
           "Sid": "AllowDependentResources",
           "Effect": "Allow",
           "Action": [
               "elasticache:CreateServerlessCache"
           ],
           "Resource": [
               "arn:aws:elasticache:*:*:serverlesscachesnapshot:*",
               "arn:aws:elasticache:*:*:snapshot:*",
               "arn:aws:elasticache:*:*:usergroup:*"
           ]
       },
       {
           "Effect": "Allow",
           "Action": [
               "elasticache:CreateServerlessCache"
           ],
           "Resource": [
               "arn:aws:elasticache:*:*:serverlesscache:*"
           ],
           "Condition": {
               "StringEquals": {
                   "elasticache:KmsKeyId": "my-key"
               }
           }
       }
     ]
   }
   ```

------

1. **elasticacheCacheParameterGroupName:** especifique um grupo de parâmetros não padrão com parâmetros específicos de uma organização em seus clusters. Você também pode especificar um padrão de nomenclatura para seus grupos de parâmetros ou exclusão de blocos em um nome de grupo de parâmetros específico. A seguir está um exemplo que restringe o uso de apenas "my-org-param-group”.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
   
            {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
   
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:cluster:*",
                   "arn:aws:elasticache:*:*:replicationgroup:*"
               ],
               "Condition": {
                   "StringEquals": {
                       "elasticache:CacheParameterGroupName": "my-org-param-group"
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticache:CacheParameterGroupName:** Com o Memcached, especifique um grupo de parâmetros não padrão com parâmetros específicos de uma organização em seus clusters. Você também pode especificar um padrão de nomenclatura para seus grupos de parâmetros ou exclusão de blocos em um nome de grupo de parâmetros específico. A seguir está um exemplo que restringe o uso de apenas "my-org-param-group”.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
   
            {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
   
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:cluster:*"
               ],
               "Condition": {
                   "StringEquals": {
                       "elasticache:CacheParameterGroupName": "my-org-param-group"
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticache:CreateCacheCluster:** Negar a `CreateCacheCluster` ação se a tag de solicitação `Project` estiver ausente ou não for igual a`Dev`, ou. `QA` `Prod`

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
             {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*",
                   "arn:aws:elasticache:*:*:securitygroup:*",
                   "arn:aws:elasticache:*:*:replicationgroup:*"
               ]
           },
           {
               "Effect": "Deny",
               "Action": [
                   "elasticache:CreateCacheCluster"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:cluster:*"
               ],
               "Condition": {
                   "Null": {
                       "aws:RequestTag/Project": "true"
                   }
               }
           },
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:AddTagsToResource"
               ],
               "Resource": "arn:aws:elasticache:*:*:cluster:*",
               "Condition": {
                   "StringEquals": {
                       "aws:RequestTag/Project": [
                           "Dev",
                           "Prod",
                           "QA"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticache:CacheNodeType:** Permitindo `CreateCacheCluster` com `cacheNodeType` cache.r5.large ou cache.r6g.4xlarge e tag. `Project=XYZ` 

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
         {
         "Effect": "Allow",
         "Action": [
           "elasticache:CreateCacheCluster",
           "elasticache:CreateReplicationGroup"
         ],
         "Resource": [
           "arn:aws:elasticache:*:*:parametergroup:*",
           "arn:aws:elasticache:*:*:subnetgroup:*"
         ]
       },
       {
         "Effect": "Allow",
         "Action": [
           "elasticache:CreateCacheCluster"
         ],
         "Resource": [
           "arn:aws:elasticache:*:*:cluster:*"
         ],
         "Condition": {
           "StringEqualsIfExists": {
             "elasticache:CacheNodeType": [
               "cache.r5.large",
               "cache.r6g.4xlarge"
             ]
           },
           "StringEquals": {
             "aws:RequestTag/Project": "XYZ"
           }
         }
       }
     ]
   }
   ```

------

1. **elasticache:CacheNodeType:** Permitindo `CreateCacheCluster` com `cacheNodeType` cache.r5.large ou cache.r6g.4xlarge e tag. `Project=XYZ` 

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
         {
         "Effect": "Allow",
         "Action": [
           "elasticache:CreateCacheCluster"
         ],
         "Resource": [
           "arn:aws:elasticache:*:*:parametergroup:*",
           "arn:aws:elasticache:*:*:subnetgroup:*"
         ]
       },
       {
         "Effect": "Allow",
         "Action": [
           "elasticache:CreateCacheCluster"
         ],
         "Resource": [
           "arn:aws:elasticache:*:*:cluster:*"
         ],
         "Condition": {
           "StringEqualsIfExists": {
             "elasticache:CacheNodeType": [
               "cache.r5.large",
               "cache.r6g.4xlarge"
             ]
           },
           "StringEquals": {
             "aws:RequestTag/Project": "XYZ"
           }
         }
       }
     ]
   }
   ```

------

**nota**  
Ao criar políticas para impor tags e outras chaves de condição juntas, o `IfExists` condicional pode ser necessário na condição de elementos-chave devido aos requisitos extras de política `elasticache:AddTagsToResource` para solicitações de criação com o parâmetro `--tags`.

# Uso de funções vinculadas ao serviço para o Amazon ElastiCache
<a name="using-service-linked-roles"></a>

O Amazon ElastiCache usa [funções vinculadas ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) do AWS Identity and Access Management IAM. A função vinculada ao serviço é um tipo exclusivo de função do IAM vinculada diretamente a um serviço da AWS, como o Amazon ElastiCache. As funções vinculadas ao serviço do Amazon ElastiCache são predefinidas pelo Amazon ElastiCache. Elas incluem todas as permissões que o serviço exige para chamar os serviços da AWS em nome dos seus clusters. 

Uma função vinculada ao serviço facilita a configuração do Amazon ElastiCache porque você não precisa adicionar as permissões necessárias manualmente. As funções ainda existem dentro de sua contada AWS mas estão vinculadas aos casos de uso do Amazon ElastiCache e têm permissões predefinidas. Somente o Amazon ElastiCache pode assumir essas funções e somente essas funções podem usar a política de permissões predefinidas. Você pode excluir os perfis somente depois de primeiro excluir seus recursos relacionados. Isso protege seus recursos do Amazon ElastiCache, pois você não pode remover por engano as permissões necessárias para acessar os recursos.

Para obter informações sobre outros serviços compatíveis com funções vinculadas a serviços, consulte [Serviços da AWS compatíveis com o IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) e procure os serviços que contenham **Sim** na coluna **Função vinculada a serviço**. Escolha um **Sim** com um link para visualizar a documentação do perfil vinculado para esse serviço.

**Contents**
+ [Permissões de perfil vinculado ao serviço](#service-linked-role-permissions)
  + [Permissões para criar uma função vinculada ao serviço](#service-linked-role-permissions)
+ [Criação de uma função vinculada ao serviço (IAM)](#create-service-linked-role-iam)
  + [Uso do console do IAM](#create-service-linked-role-iam-console)
  + [Uso da CLI do IAM](#create-service-linked-role-iam-cli)
  + [Uso da API do IAM](#create-service-linked-role-iam-api)
+ [Editar a descrição de uma função vinculada ao serviço](#edit-service-linked-role)
  + [Uso do console do IAM](#edit-service-linked-role-iam-console)
  + [Uso da CLI do IAM](#edit-service-linked-role-iam-cli)
  + [Uso da API do IAM](#edit-service-linked-role-iam-api)
+ [Exclusão de uma função vinculada ao serviço do Amazon ElastiCache](#delete-service-linked-role)
  + [Limpar uma função vinculada ao serviço](#service-linked-role-review-before-delete)
  + [Exclusão de uma função vinculada ao serviço (console do IAM)](#delete-service-linked-role-iam-console)
  + [Exclusão de uma função vinculada ao serviço (CLI do IAM)](#delete-service-linked-role-iam-cli)
  + [Exclusã de uma função vinculada ao serviço (API do IAM)](#delete-service-linked-role-iam-api)

## Permissões de função vinculada ao serviço para o Amazon ElastiCache
<a name="service-linked-role-permissions"></a>

### Permissões para criar uma função vinculada ao serviço
<a name="service-linked-role-permissions"></a>

**Para permitir que uma entidade do IAM crie uma função vinculada ao serviço ServiceRoleForElastiCache da AWS**

Adicione a seguinte declaração de política às permissões dessa entidade IAM:

```
{
    "Effect": "Allow",
    "Action": [
        "iam:CreateServiceLinkedRole",
        "iam:PutRolePolicy"
    ],
    "Resource": "arn:aws:iam::*:role/aws-service-role/elasticache.amazonaws.com/AWSServiceRoleForElastiCache*",
    "Condition": {"StringLike": {"iam:AWSServiceName": "elasticache.amazonaws.com"}}
}
```

**Para permitir que uma entidade do IAM exclua uma função vinculada ao serviço ServiceRoleForElastiCache da AWS**

Adicione a seguinte declaração de política às permissões dessa entidade IAM:

```
{
    "Effect": "Allow",
    "Action": [
        "iam:DeleteServiceLinkedRole",
        "iam:GetServiceLinkedRoleDeletionStatus"
    ],
    "Resource": "arn:aws:iam::*:role/aws-service-role/elasticache.amazonaws.com/AWSServiceRoleForElastiCache*",
    "Condition": {"StringLike": {"iam:AWSServiceName": "elasticache.amazonaws.com"}}
}
```

Como alternativa, você pode usar uma política gerenciada pela AWS para fornecer acesso total ao Amazon ElastiCache.

## Criação de uma função vinculada ao serviço (IAM)
<a name="create-service-linked-role-iam"></a>

Você pode criar uma função vinculada ao serviço usando o console do IAM, a CLI ou a API.

### Criação de uma função vinculada ao serviço (console do IAM)
<a name="create-service-linked-role-iam-console"></a>

Você pode usar o console do IAM para criar uma função vinculada ao serviço.

**Para criar uma função vinculada ao serviço (console)**

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

1. No painel de navegação do console do IAM, escolha **Perfis**. Em seguida, escolha **Criar nova função**.

1. Em **Select type of trusted entity** (Selecionar tipo de entidade confiável), selecione **Serviço da AWS**.

1. Em **Or select a service to view its use cases** (Ou selecione um serviço para visualizar seus casos de uso), escolha **ElastiCache**.

1. Escolha **Next: Permissions** (Próximo: permissões).

1. Em **Nome da política**, observe que `ElastiCacheServiceRolePolicy` é necessário para esta função. Escolha **Próximo: tags**.

1. Observe que não há suporte para as tags para funções vinculadas ao serviço. Escolha **Próximo: análise**.

1. (Opcional) Em **Descrição da função**, edite a descrição para a nova função vinculada ao serviço.

1. Revise a função e escolha **Criar função**.

### Criação de uma função vinculada ao serviço (CLI do IAM)
<a name="create-service-linked-role-iam-cli"></a>

Você pode usar operações do IAM na AWS Command Line Interface para excluir uma função vinculada ao serviço. Essa função pode incluir a política de confiança e as políticas em linha de que o serviço precisa para assumir a função.

**Para criar uma função vinculada ao serviço (CLI)**

Use a seguinte operação:

```
$ aws iam [create-service-linked-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-service-linked-role.html) --aws-service-name elasticache.amazonaws.com
```

### Criação de uma função vinculada ao serviço (API do IAM)
<a name="create-service-linked-role-iam-api"></a>

Você pode usar a API do IAM para excluir uma função vinculada ao serviço. Essa função pode conter a política de confiança e as políticas em linha de que o serviço precisa para assumir a função.

**Para criar uma função vinculada ao serviço (API)**

Use a chamada da API [CreateServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html). Na solicitação, especifique o nome do serviço na forma de `elasticache.amazonaws.com`. 

## Edição da descrição de uma função vinculada a serviço para o Amazon ElastiCache
<a name="edit-service-linked-role"></a>

O Amazon ElastiCache não permite que você edite a função vinculada ao serviço ServiceRoleForElastiCache da AWS. Depois que criar um perfil vinculado ao serviço, você não poderá alterar o nome do perfil, pois várias entidades podem fazer referência a ele. No entanto, será possível editar a descrição do perfil usando o IAM.

### Edição da descrição de uma função vinculada ao serviço (console do IAM)
<a name="edit-service-linked-role-iam-console"></a>

Também é possível usar o console do IAM para editar a descrição de uma função vinculada ao serviço.

**Para editar a descrição de uma função vinculada ao serviço (console)**

1. No painel de navegação do console do IAM, escolha **Perfis**.

1. Escolha o nome da função a ser modificada.

1. No extremo direito da **Descrição da função**, escolha **Editar**. 

1. Insira uma nova descrição na caixa e escolha **Salvar**.

### Edição da descrição de uma função vinculada ao serviço (CLI do IAM)
<a name="edit-service-linked-role-iam-cli"></a>

Você pode usar operações do IAM na AWS Command Line Interface para editar a descrição de uma função vinculada ao serviço.

**Para alterar a descrição de uma função (CLI)**

1. (Opcional) Para visualizar a descrição atual de uma função, use a AWS CLI para a operação do IAM `[get-role](https://docs.aws.amazon.com/cli/latest/reference/iam/get-role.html)`.  
**Example**  

   ```
   $ aws iam [get-role](https://docs.aws.amazon.com/cli/latest/reference/iam/get-role.html) --role-name AWSServiceRoleForElastiCache
   ```

   Use o nome da função, não o nome de recurso da Amazon (ARN), para fazer referência às funções com as operações da CLI. Por exemplo, se uma função tiver o seguinte nome de recurso da Amazon (ARN): `arn:aws:iam::123456789012:role/myrole`, você fará referência à função como **myrole**.

1. Para atualizar a descrição de uma função vinculada ao serviço, use a AWS CLIpara a operação do IAM `[update-role-description](https://docs.aws.amazon.com/cli/latest/reference/iam/update-role-description.html)`.

   Para Linux, macOS ou Unix:

   ```
   $ aws iam [update-role-description](https://docs.aws.amazon.com/cli/latest/reference/iam/update-role-description.html) \
       --role-name AWSServiceRoleForElastiCache \
       --description "new description"
   ```

   Para Windows:

   ```
   $ aws iam [update-role-description](https://docs.aws.amazon.com/cli/latest/reference/iam/update-role-description.html) ^
       --role-name AWSServiceRoleForElastiCache ^
       --description "new description"
   ```

### Edição da descrição de uma função vinculada ao serviço (API do IAM)
<a name="edit-service-linked-role-iam-api"></a>

Você pode usar a API do IAM para editar uma descrição de função vinculada ao serviço.

**Para alterar a descrição de uma função (API)**

1. (Opcional) Para visualizar a descrição atual de uma função, use a operação da API do IAM [GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html).  
**Example**  

   ```
   https://iam.amazonaws.com/
      ?Action=[GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html)
      &RoleName=AWSServiceRoleForElastiCache
      &Version=2010-05-08
      &AUTHPARAMS
   ```

1. Para atualizar uma descrição de função, use a operação da API do IAM [UpdateRoleDescription](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateRoleDescription.html).  
**Example**  

   ```
   https://iam.amazonaws.com/
      ?Action=[UpdateRoleDescription](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateRoleDescription.html)
      &RoleName=AWSServiceRoleForElastiCache
      &Version=2010-05-08
      &Description="New description"
   ```

## Exclusão de uma função vinculada ao serviço do Amazon ElastiCache
<a name="delete-service-linked-role"></a>

Se você não precisar mais usar um recurso ou serviço que requer um perfil vinculado ao serviço, é recomendável excluí-lo. Dessa forma, você não tem uma entidade não utilizada que não seja monitorada ativamente ou mantida. No entanto, você deve limpar sua função vinculada ao serviço antes de excluí-la.

O Amazon ElastiCache não exclui a função vinculada ao serviço para você.

### Limpar uma função vinculada ao serviço
<a name="service-linked-role-review-before-delete"></a>

Antes de usar o IAM para excluir uma função vinculada ao serviço, primeiro confirme que a função não tem recursos (clusters ou grupos de replicação) associados a ela.

**Para verificar se a função vinculada ao serviço tem uma sessão ativa no console do IAM**

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

1. No painel de navegação do console do IAM, escolha **Perfis**. Então, escolha o nome (não a caixa de seleção) da função ServiceRoleForElastiCache da AWS.

1. Na página **Resumo** para a função selecionada, escolha a guia **Consultor de Acesso**.

1. Na guia **Consultor de Acesso**, revise a atividade recente para a função vinculada ao serviço.

**Para excluir recursos do Amazon ElastiCache que exigem ServiceRoleForelastiCache da AWS**
+ Para excluir um cluster, consulte o seguinte:
  + [Usando o Console de gerenciamento da AWS](Clusters.Delete.md#Clusters.Delete.CON)
  + [Usando o AWS CLI para excluir um ElastiCache cluster](Clusters.Delete.md#Clusters.Delete.CLI)
  + [Usando a ElastiCache API](Clusters.Delete.md#Clusters.Delete.API)
+ Para excluir um grupo de replicação, consulte o seguinte:
  + [Exclusão de um grupo de replicação (Console)](Replication.DeletingRepGroup.md#Replication.DeletingRepGroup.CON)
  + [Excluir um grupo de replicação (AWS CLI)](Replication.DeletingRepGroup.md#Replication.DeletingRepGroup.CLI)
  + [Exclusão de um grupo de replicação (API do ElastiCache)](Replication.DeletingRepGroup.md#Replication.DeletingRepGroup.API)

### Exclusão de uma função vinculada ao serviço (console do IAM)
<a name="delete-service-linked-role-iam-console"></a>

É possível usar o console do IAM para excluir uma função vinculada ao serviço.

**Para excluir uma função vinculada ao serviço (console)**

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

1. No painel de navegação do console do IAM, escolha **Roles**. Selecione a caixa de marcação ao lado do nome da função que você deseja excluir, não o nome ou a linha em si. 

1. Em ações de **Role (Função)** na parte superior da página, escolha a função **Delete (Excluir)**.

1. Na caixa de diálogo de confirmação, revise os dados do último acesso ao serviço, que mostram quando cada uma das funções selecionadas acessou pela última vez um serviço da AWS. Isso ajuda você a confirmar se a função está ativo no momento. Se quiser prosseguir, escolha **Sim, Excluir** para enviar a função vinculada ao serviço para exclusão.

1. Monitore as notificações do console do IAM para progresso da exclusão da função vinculada ao serviço. Como a exclusão da função vinculada ao serviço do IAM é assíncrona, depois de enviar a função para exclusão, a tarefa pode ou não ser bem-sucedida. Se a tarefa obtiver êxito, você poderá escolher **Visualizar Detalhes** ou **Visualizar Recursos** a partir das notificações para saber por que a exclusão falhou.

### Exclusão de uma função vinculada ao serviço (CLI do IAM)
<a name="delete-service-linked-role-iam-cli"></a>

Você pode usar operações do IAM na AWS Command Line Interface para excluir uma função vinculada ao serviço.

**Para excluir uma função vinculado ao serviço (CLI)**

1. Se você não souber o nome da função vinculada ao serviço que deseja excluir, insira o seguinte comando. Esse comando lista as funções e os nomes de recursos da Amazon (ARNs) em sua conta.

   ```
   $ aws iam [get-role](https://docs.aws.amazon.com/cli/latest/reference/iam/get-role.html) --role-name role-name
   ```

   Use o nome da função, não o nome de recurso da Amazon (ARN), para fazer referência às funções com as operações da CLI. Por exemplo, se uma função tiver o ARN `arn:aws:iam::123456789012:role/myrole`, você fará referência à função como **myrole**.

1. Como uma função vinculada ao serviço não podem ser excluída se estiver sendo usada ou tiver recursos associados, você deverá enviar uma solicitação de exclusão. Essa solicitação poderá ser negada se essas condições não forem atendidas. Você deve capturar o `deletion-task-id` da resposta para verificar o status da tarefa de exclusão. Insira o seguinte para enviar uma solicitação de exclusão de função vinculada ao serviço.

   ```
   $ aws iam [delete-service-linked-role](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-service-linked-role.html) --role-name role-name
   ```

1. Insita o seguinte para verificar o estado da tarefa de exclusão.

   ```
   $ aws iam [get-service-linked-role-deletion-status](https://docs.aws.amazon.com/cli/latest/reference/iam/get-service-linked-role-deletion-status.html) --deletion-task-id deletion-task-id
   ```

   O status da tarefa de exclusão pode ser `NOT_STARTED`, `IN_PROGRESS`, `SUCCEEDED`, ou `FAILED`. Se a exclusão falhar, a chamada informará o motivo de falha para que você possa solucionar o problema.

### Exclusã de uma função vinculada ao serviço (API do IAM)
<a name="delete-service-linked-role-iam-api"></a>

É possível usar a API do IAM para excluir uma função vinculada ao serviço.

**Para excluir uma função vinculada ao serviço (API)**

1. Para enviar uma solicitação de exclusão de um roll vinculada ao serviço, chame [DeleteServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceLinkedRole.html). Na solicitação, especifique o nome da função.

   Como uma função vinculada ao serviço não podem ser excluída se estiver sendo usada ou tiver recursos associados, você deverá enviar uma solicitação de exclusão. Essa solicitação poderá ser negada se essas condições não forem atendidas. Você deve capturar o `DeletionTaskId` da resposta para verificar o status da tarefa de exclusão.

1. Para verificar o status da exclusão, chame [GetServiceLinkedRoleDeletionStatus](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLinkedRoleDeletionStatus.html). Na solicitação, especifique o `DeletionTaskId`.

   O status da tarefa de exclusão pode ser `NOT_STARTED`, `IN_PROGRESS`, `SUCCEEDED`, ou `FAILED`. Se a exclusão falhar, a chamada informará o motivo de falha para que você possa solucionar o problema.

# Permissões da API do ElastiCache: referência de ações, recursos e condições
<a name="IAM.APIReference"></a>

Ao configurar [controle de acesso](IAM.md) e escrever políticas de permissões para anexar a uma política do IAM (baseada em identidade ou em recursos), use a tabela a seguir como referência. A tabela lista cada operação da API do Amazon ElastiCache e as ações correspondentes para as quais você pode conceder permissões para executar a ação. Você especifica as ações no campo `Action` da política e um valor de recurso no campo `Resource`da política. Salvo indicação em contrário, o recurso é obrigatório. Alguns campos incluem um recurso obrigatório e recursos opcionais. Quando não há ARN de recurso, o recurso na política é um caractere curinga (\$1).

Você pode usar as chaves de condição em toda a nas suas políticas do ElastiCache para expressar condições. Para ver uma lista de chaves de condição específicas do ElastiCache, juntamente com as ações e os tipos de recursos aos quais elas se aplicam, consulte [Uso de chaves de condição](IAM.ConditionKeys.md). Para obter uma lista completa de chaves em toda a AWS, consulte [Chaves de contexto de condição globais da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) no *Guia do usuário do IAM*.

**nota**  
Para especificar uma ação, use o prefixo `elasticache:` seguido do nome da operação da API (por exemplo, `elasticache:DescribeCacheClusters`).

Para ver uma lista das ações do ElastiCache, consulte [Actions Defined by Amazon ElastiCache](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticache.html#amazonelasticache-actions-as-permissions) na *Referência de autorização do serviço*.