

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

# Usar perfis vinculados ao serviço para o MemoryDB
<a name="using-service-linked-roles"></a>

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

Um perfil vinculado ao serviço facilita a configuração do MemoryDB, já que você não precisa adicionar as permissões necessárias manualmente. As funções já existem na sua AWS conta, mas estão vinculadas aos casos de uso do MemoryDB e têm permissões predefinidas. Somente o MemoryDB pode assumir esses perfis e somente esses perfis podem usar a política de permissões predefinidas. Você pode excluir os perfis somente depois de primeiro excluir seus recursos relacionados. Isso protege os recursos do MemoryDB, já que não é possível remover por engano as permissões necessárias para acessar os recursos.

Para obter informações sobre outros serviços compatíveis com perfis vinculados 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 **Service-Linked Role**. 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)
+ [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)
+ [Excluir um perfil vinculado ao serviço para o MemoryDB](#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 perfil vinculado ao serviço para o MemoryDB
<a name="service-linked-role-permissions"></a>

O MemoryDB usa a função vinculada ao serviço chamada **AWSServiceRoleForMemoryDB** — Essa política permite que o MemoryDB gerencie AWS recursos em seu nome conforme necessário para gerenciar seus clusters.

A política de permissões de função vinculada ao serviço de AWSService RoleForMemory banco de dados permite que o MemoryDB conclua as seguintes ações nos recursos especificados:

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

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Effect": "Allow",
			"Action": [
				"ec2:CreateTags"
			],
			"Resource": "arn:aws-cn:ec2:*:*:network-interface/*",
			"Condition": {
				"StringEquals": {
					"ec2:CreateAction": "CreateNetworkInterface"
				},
				"ForAllValues:StringEquals": {
					"aws:TagKeys": [
						"AmazonMemoryDBManaged"
					]
				}
			}
		},
		{
			"Effect": "Allow",
			"Action": [
				"ec2:CreateNetworkInterface"
			],
			"Resource": [
				"arn:aws-cn:ec2:*:*:network-interface/*",
				"arn:aws-cn:ec2:*:*:subnet/*",
				"arn:aws-cn:ec2:*:*:security-group/*"
			]
		},
		{
			"Effect": "Allow",
			"Action": [
				"ec2:DeleteNetworkInterface",
				"ec2:ModifyNetworkInterfaceAttribute"
			],
			"Resource": "arn:aws-cn:ec2:*:*:network-interface/*",
			"Condition": {
				"StringEquals": {
					"ec2:ResourceTag/AmazonMemoryDBManaged": "true"
				}
			}
		},
		{
			"Effect": "Allow",
			"Action": [
				"ec2:DeleteNetworkInterface",
				"ec2:ModifyNetworkInterfaceAttribute"
			],
			"Resource": "arn:aws-cn:ec2:*:*:security-group/*"
		},
		{
			"Effect": "Allow",
			"Action": [
				"ec2:DescribeSecurityGroups",
				"ec2:DescribeNetworkInterfaces",
				"ec2:DescribeAvailabilityZones",
				"ec2:DescribeSubnets",
				"ec2:DescribeVpcs"
			],
			"Resource": "*"
		},
		{
			"Effect": "Allow",
			"Action": [
				"cloudwatch:PutMetricData"
			],
			"Resource": "*",
			"Condition": {
				"StringEquals": {
					"cloudwatch:namespace": "AWS/MemoryDB"
				}
			}
		}
	]
}
```

------

Para obter mais informações, consulte [AWS política gerenciada: Memória DBService RolePolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-memorydbServiceRolePolicy).

**Para permitir que uma entidade do IAM crie funções vinculadas ao serviço de AWSService RoleForMemory banco de dados**

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/memorydb.amazonaws.com/AWSServiceRoleForMemoryDB*",
    "Condition": {"StringLike": {"iam:AWS ServiceName": "memorydb.amazonaws.com"}}
}
```

**Para permitir que uma entidade do IAM exclua funções vinculadas ao serviço de AWSService RoleForMemory banco de dados**

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/memorydb.amazonaws.com/AWSServiceRoleForMemoryDB*",
    "Condition": {"StringLike": {"iam:AWS ServiceName": "memorydb.amazonaws.com"}}
}
```

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

## 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 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 esquerdo do console IAM, escolha **Funções**. Em seguida, escolha **Criar nova função**.

1. Em **Selecionar tipo de entidade confiável**, selecione **Serviço da AWS **.

1. Em **Ou selecione um serviço para visualizar seus casos de uso**, escolha **MemoryDB**.

1. Escolha **Próximo: permissões**.

1. Em **Nome da política**, observe que `MemoryDBServiceRolePolicy` é 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 as operações do IAM do AWS Command Line Interface para criar 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/IAM/latest/APIReference/API_CreateServiceLinkedRole.html) --aws-service-name memorydb.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 `memorydb.amazonaws.com`. 

## Editar a descrição de um perfil vinculado ao serviço para o MemoryDB
<a name="edit-service-linked-role"></a>

O MemoryDB não permite que você edite a função vinculada ao serviço de AWSService RoleForMemory banco de dados. 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 esquerdo do console IAM, escolha **Funções**.

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 as operações do IAM do AWS Command Line Interface para editar uma descrição de função vinculada ao serviço.

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

1. (Opcional) Para ver a descrição atual de uma função, use a operação AWS CLI for IAM`[get-role](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html)`.  
**Example**  

   ```
   $ aws iam [get-role](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html) --role-name AWSServiceRoleForMemoryDB
   ```

   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 operação AWS CLI for IAM. `[update-role-description](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateRoleDescription.html)`

   Para Linux, macOS ou Unix:

   ```
   $ aws iam [update-role-description](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateRoleDescription.html) \
       --role-name AWSServiceRoleForMemoryDB \
       --description "new description"
   ```

   Para Windows:

   ```
   $ aws iam [update-role-description](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateRoleDescription.html) ^
       --role-name AWSServiceRoleForMemoryDB ^
       --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=AWSServiceRoleForMemoryDB
      &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=AWSServiceRoleForMemoryDB
      &Version=2010-05-08
      &Description="New description"
   ```

## Excluir um perfil vinculado ao serviço para o MemoryDB
<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 MemoryDB não exclui o perfil vinculado 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 a um serviço, primeiro confirme se a função não tem recursos (clusters) 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 esquerdo do console IAM, escolha **Funções**. Em seguida, escolha o nome (não a caixa de seleção) da função de AWSService RoleForMemory banco de dados.

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 MemoryDB que exigem AWSService RoleForMemory DB (console)**
+ Para excluir um cluster, consulte o seguinte:
  + [Usando o Console de gerenciamento da AWS](getting-started.md#clusters.deleteclusters.viewdetails)
  + [Usando o AWS CLI](getting-started.md#clusters.delete.cli)
  + [Usando a API do MemoryDB](getting-started.md#clusters.delete.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 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 esquerdo do console IAM, escolha **Funções**. 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 **Função** na parte superior da página, escolha a função **Excluir**.

1. Na página de confirmação, revise os dados do último acesso ao serviço, que mostram quando cada uma das funções selecionadas acessou um AWS serviço pela última vez. 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 as operações do IAM do 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 seus nomes de recursos da Amazon (ARNs) em sua conta.

   ```
   $ aws iam [get-role](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.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/IAM/latest/APIReference/API_DeleteServiceLinkedRole.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/IAM/latest/APIReference/API_GetServiceLinkedRoleDeletionStatus.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.