

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

# Criptografia no Amazon OpenSearch Serverless
<a name="serverless-encryption"></a>

## Criptografia em repouso
<a name="serverless-encryption-at-rest"></a>

Cada coleção Amazon OpenSearch Serverless que você cria é protegida com criptografia de dados em repouso, um recurso de segurança que ajuda a impedir o acesso não autorizado aos seus dados. A criptografia em repouso usa AWS Key Management Service (AWS KMS) para armazenar e gerenciar suas chaves de criptografia. Ele usa o algoritmo Advanced Encryption Standard com chaves de 256 bits (AES-256) para realizar a criptografia.

**Topics**
+ [Políticas de criptografia](#serverless-encryption-policies)
+ [Considerações](#serverless-encryption-considerations)
+ [Permissões obrigatórias](#serverless-encryption-permissions)
+ [Política de chaves para uma chave gerenciada pelo cliente](#serverless-customer-cmk-policy)
+ [Como o OpenSearch Serverless usa subsídios em AWS KMS](#serverless-encryption-grants)
+ [Criação de políticas de criptografia (console)](#serverless-encryption-console)
+ [Criação de políticas de criptografia (AWS CLI)](#serverless-encryption-cli)
+ [Exibição de políticas de criptografia](#serverless-encryption-list)
+ [Atualização de políticas de criptografia](#serverless-encryption-update)
+ [Exclusão de políticas de criptografia](#serverless-encryption-delete)

### Políticas de criptografia
<a name="serverless-encryption-policies"></a>

Com as políticas de criptografia, é possível gerenciar várias coleções em grande escala atribuindo automaticamente uma chave de criptografia às coleções recém-criadas que correspondam a um nome ou padrão específico.

Ao criar uma política de criptografia, é possível especificar um *prefixo*, que é uma regra de correspondência baseada em curingas, como `MyCollection*`, ou inserir um único nome de coleção. Em seguida, quando você criar uma coleção que corresponda a esse padrão de nome ou prefixo, a política e a chave do KMS correspondente serão automaticamente atribuídas a ela.

Ao criar uma coleção, você pode especificar uma AWS KMS chave de duas maneiras: por meio de políticas de segurança ou diretamente na `CreateCollection` solicitação. Se você fornecer uma AWS KMS chave como parte da `CreateCollection` solicitação, ela terá precedência sobre qualquer política de segurança correspondente. Com essa abordagem, você tem a flexibilidade de substituir as configurações de criptografia baseadas em políticas para coleções específicas quando necessário.

![Política de criptografia com regras que combinam o MyLogs padrão com a coleção usando my_kms_key.](http://docs.aws.amazon.com/pt_br/opensearch-service/latest/developerguide/images/serverless-encryption.png)


As políticas de criptografia contêm os seguintes elementos:
+ `Rules`: uma ou mais regras de correspondência de coleções, cada uma com os seguintes subelementos:
  + `ResourceType`: no momento, a única opção é “collection” (coleção). As políticas de criptografia se aplicam somente aos recursos de coleção.
  + `Resource`: um ou mais nomes ou padrões de coleção aos quais a política será aplicada, no formato `collection/<{{collection name|pattern}}>`.
+ `AWSOwnedKey`: opção de uso de uma Chave pertencente à AWS.
+ `KmsARN`: se você definir `AWSOwnedKey` como falso, especifique o nome do recurso da Amazon (ARN) da chave do KMS com a qual criptografar as coleções associadas. Se você incluir esse parâmetro, o OpenSearch Serverless ignorará o parâmetro. `AWSOwnedKey`

O exemplo de política a seguir atribuirá uma chave gerenciada pelo cliente a qualquer coleção futura denominada `autopartsinventory`, bem como às coleções que comecem com o termo “sales” (vendas):

```
{
   "Rules":[
      {
         "ResourceType":"collection",
         "Resource":[
            "collection/{{autopartsinventory}}",
            "collection/{{sales*}}"
         ]
      }
   ],
   "AWSOwnedKey":false,
   "KmsARN":"arn:aws:kms:{{us-east-1}}:{{123456789012}}:key/{{93fd6da4-a317-4c17-bfe9-382b5d988b36}}"
}
```

Mesmo que uma política corresponda a um nome de coleção, é possível optar por substituir essa atribuição automática durante a criação da coleção se o padrão do recurso contiver um caractere curinga (\*). Se você optar por substituir a atribuição automática de chaves, o OpenSearch Serverless cria uma política de criptografia para você chamada **auto-< {{collection-name}} >** e a anexa à coleção. Inicialmente, a política só se aplica a uma única coleção, mas é possível modificá-la para incluir coleções adicionais.

Para substituir a atribuição automática da política de criptografia durante a criação da coleção usando o console, escolha **Personalizar configurações de criptografia** ao criar uma coleção e selecione sua chave preferida AWS KMS . Usando o AWS CLI, inclua o `--encryption-policy-name` parâmetro na `CreateCollection` solicitação ou especifique `kmsKeyArn` diretamente:

```
aws opensearchserverless create-collection \
    --name {{my-collection}} \
    --type SEARCH \
    --encryption-policy-name {{my-encryption-policy}}
```

Se você modificar as regras de política para que não correspondam mais a uma coleção, a chave do KMS associada não terá a atribuição a essa coleção cancelada. A coleção permanece sempre criptografada com sua chave de criptografia inicial. Se você desejar alterar a chave de criptografia de uma coleção, deverá recriar a coleção.

Se as regras de várias políticas corresponderem a uma coleção, a regra mais específica será usada. Por exemplo, se uma política contiver uma regra para `collection/log*` e outra para `collection/logSpecial`, a chave de criptografia da segunda política será usada porque é mais específica.

Você não pode usar um nome ou prefixo em uma política se ela já existir em outra política. OpenSearch O Serverless exibirá um erro se você tentar configurar padrões de recursos idênticos em políticas de criptografia diferentes.

### Considerações
<a name="serverless-encryption-considerations"></a>

Considere o seguinte ao configurar a criptografia de suas coleções:
+ A criptografia em repouso é *obrigatória* para todas as coleções do Sem Servidor.
+ Você tem a opção de usar uma chave gerenciada pelo cliente ou uma Chave pertencente à AWS. Se você escolher uma chave gerenciada pelo cliente, recomendamos habilitar a [rotação automática de chaves](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html).
+ Não é possível alterar a chave de criptografia de uma coleção depois que a coleção é criada. Escolha cuidadosamente qual AWS KMS usar na primeira vez que você configura uma coleção.
+ Uma coleção só pode corresponder a uma única política de criptografia.
+ Coleções com chaves KMS exclusivas não podem compartilhar Unidades de OpenSearch Computação (OCUs) com outras coleções, a menos que façam parte do mesmo grupo de coleções. Cada coleção com uma chave exclusiva que não esteja em um grupo de coleções requer suas próprias OCUs. Para obter mais informações, consulte [Grupos de coleções](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-collection-groups.html).
+ Se você atualizar a chave do KMS em uma política de criptografia, a alteração não afetará as coleções correspondentes existentes com as chaves do KMS já atribuídas.
+ OpenSearch O Serverless não verifica explicitamente as permissões do usuário nas chaves gerenciadas pelo cliente. Se um usuário tiver permissões para acessar uma coleção por meio de uma política de acesso a dados, ele poderá ingerir e consultar os dados criptografados com a chave associada.

### Permissões obrigatórias
<a name="serverless-encryption-permissions"></a>

A criptografia em repouso para OpenSearch Serverless usa as seguintes permissões AWS Identity and Access Management (IAM). É possível especificar as condições do IAM para restringir os usuários a coleções específicas.
+ `aoss:CreateSecurityPolicy`: cria uma política de criptografia.
+ `aoss:ListSecurityPolicies`: lista todas as políticas e coleções de criptografia às quais elas estão vinculadas.
+ `aoss:GetSecurityPolicy`: exibe os detalhes de uma política de criptografia específica.
+ `aoss:UpdateSecurityPolicy`: modifica uma política de criptografia.
+ `aoss:DeleteSecurityPolicy`: exclui uma política de criptografia.

O exemplo a seguir de política de acesso baseada em identidade fornece as permissões mínimas necessárias para que um usuário gerencie políticas de criptografia com o padrão de recursos `collection/application-logs`.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "aoss:CreateSecurityPolicy",
            "aoss:UpdateSecurityPolicy",
            "aoss:DeleteSecurityPolicy",
            "aoss:GetSecurityPolicy"
         ],
         "Resource":"*",
         "Condition":{
            "StringEquals":{
               "aoss:collection":"{{application-logs}}"
            }
         }
      },
      {
         "Effect":"Allow",
         "Action":[
            "aoss:ListSecurityPolicies"
         ],
         "Resource":"*"
      }
   ]
}
```

------

### Política de chaves para uma chave gerenciada pelo cliente
<a name="serverless-customer-cmk-policy"></a>

Se você selecionar uma [chave gerenciada pelo cliente](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) para proteger uma coleção, a OpenSearch Serverless obterá permissão para usar a chave KMS em nome do diretor que faz a seleção. Esse diretor, um usuário ou uma função, deve ter as permissões na chave KMS que o OpenSearch Serverless exige. É possível fornecer essas permissões em uma [política de chaves](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) ou em uma [política do IAM](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html).

OpenSearch O Serverless faz `GenerateDataKey` e faz chamadas à API `Decrypt` KMS durante operações de manutenção, como escalonamento automático e atualizações de software. Você pode observar essas chamadas fora dos padrões de tráfego típicos. Essas chamadas fazem parte das operações normais do serviço e não indicam tráfego ativo de usuários. 

OpenSearch O Serverless gera um `KMSKeyInaccessibleException` quando não consegue acessar a chave KMS que criptografa seus dados em repouso. Isso ocorre quando você desativa ou exclui a chave KMS ou revoga as concessões que permitem que o OpenSearch Serverless use a chave.

No mínimo, o OpenSearch Serverless exige as seguintes permissões em uma chave gerenciada pelo cliente:
+ [kms: DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)
+ [kms: CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)

Por exemplo:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
        "Action": "kms:DescribeKey",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::123456789012:user/Dale"
        },
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "kms:ViaService": "aoss.us-east-1.amazonaws.com"
            }
        }
    },
    {
        "Action": "kms:CreateGrant",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::123456789012:user/Dale"
        },
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "kms:ViaService": "aoss.us-east-1.amazonaws.com"
            },
            "ForAllValues:StringEquals": {
                "kms:GrantOperations": [
                    "Decrypt",
                    "GenerateDataKey"
                ]
            },
            "Bool": {
                "kms:GrantIsForAWSResource": "true"
            }
        }
    }
  ]
}
```

------

OpenSearch [Sem servidor, crie uma concessão com as permissões [kms: GenerateDataKey e kms:decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html).](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)

Para saber mais, consulte [Uso de políticas de chaves no AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) no *Guia do desenvolvedor do AWS Key Management Service *.

### Como o OpenSearch Serverless usa subsídios em AWS KMS
<a name="serverless-encryption-grants"></a>

OpenSearch O Serverless exige uma [concessão](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) para usar uma chave gerenciada pelo cliente.

Quando você cria uma política de criptografia em sua conta com uma nova chave, o OpenSearch Serverless cria uma concessão em seu nome enviando uma [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)solicitação para. AWS KMS As concessões AWS KMS são usadas para dar acesso OpenSearch sem servidor a uma chave KMS em uma conta de cliente.

OpenSearch O Serverless exige que a concessão use sua chave gerenciada pelo cliente para as seguintes operações internas:
+ Envie [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)solicitações AWS KMS para verificar se a ID simétrica da chave gerenciada pelo cliente fornecida é válida. 
+ Envie [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)solicitações para a chave KMS para criar chaves de dados com as quais criptografar objetos.
+ Envie solicitações de [descriptografia para AWS KMS descriptografar](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) as chaves de dados criptografadas para que elas possam ser usadas para criptografar seus dados. 

É possível revogar o acesso à concessão, ou remover o acesso do serviço à chave gerenciada pelo cliente a qualquer momento. Se você fizer isso, o OpenSearch Serverless não poderá acessar nenhum dos dados criptografados pela chave gerenciada pelo cliente, o que afeta todas as operações que dependem desses dados, levando a `AccessDeniedException` erros e falhas nos fluxos de trabalho assíncronos.

OpenSearch O Serverless retira as concessões em um fluxo de trabalho assíncrono quando uma determinada chave gerenciada pelo cliente não está associada a nenhuma política ou coleção de segurança.

### Criação de políticas de criptografia (console)
<a name="serverless-encryption-console"></a>

Em uma política de criptografia, você especifica uma chave do KMS e uma série de padrões de coleção aos quais a política se aplicará. Qualquer nova coleção que corresponda a um dos padrões definidos na política receberá a chave do KMS correspondente quando você criar a coleção. Recomendamos que você crie políticas de criptografia *antes* de começar a criar coleções.

**Para criar uma política de criptografia OpenSearch sem servidor**

1. Abra o console do Amazon OpenSearch Service em [https://console.aws.amazon.com/aos/home](https://console.aws.amazon.com/aos/home).

1. No painel de navegação à esquerda, expanda **Sem Servidor** e escolha **Políticas de criptografia**.

1. Escolha **Criar política de criptografia**.

1. Forneça um nome e uma descrição para a política.

1. Em **Recursos**, insira um ou mais padrões de recursos para essa política de criptografia. Todas as coleções recém-criadas na Conta da AWS e região atual que correspondam a um dos padrões serão automaticamente atribuídas a essa política. Por exemplo, se você inserir `ApplicationLogs` (sem nenhum curinga) e depois criar uma coleção com esse nome, a política e a chave do KMS correspondente serão atribuídas a essa coleção.

   Você também pode fornecer um prefixo como `Logs*`, que atribuirá a política a qualquer nova coleção com nomes começando com `Logs`. Usando curingas, é possível gerenciar as configurações de criptografia para várias coleções em grande escala.

1. Em **Criptografia**, escolha uma chave do KMS para usar.

1. Escolha **Criar**.

#### Próxima etapa: criar coleções
<a name="serverless-encryption-next"></a>

Depois de configurar uma ou mais políticas de criptografia, será possível começar a criar coleções que correspondam às regras definidas nessas políticas. Para instruções, consulte [Criação de coleções](serverless-create.md).

Na etapa **Criptografias** da criação da coleção, o OpenSearch Serverless informa que o nome inserido corresponde ao padrão definido em uma política de criptografia e atribui automaticamente a chave KMS correspondente à coleção. Se o padrão do recurso contiver um curinga (\*), será possível optar por substituir a correspondência e selecionar sua própria chave.

### Criação de políticas de criptografia (AWS CLI)
<a name="serverless-encryption-cli"></a>

Para criar uma política de criptografia usando as operações da API OpenSearch Serverless, você especifica padrões de recursos e uma chave de criptografia no formato JSON. A [CreateSecurityPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_CreateSecurityPolicy.html)solicitação aceita políticas embutidas e arquivos.json.

As políticas de criptografia têm o formato a seguir. Esse arquivo `my-policy.json` de exemplo corresponde a qualquer coleção futura denominada `autopartsinventory`, bem como a qualquer coleção com nomes iniciando por `sales`.

```
{
   "Rules":[
      {
         "ResourceType":"collection",
         "Resource":[
            "collection/{{autopartsinventory}}",
            "collection/{{sales*}}"
         ]
      }
   ],
   "AWSOwnedKey":false,
   "KmsARN":"arn:aws:kms:{{us-east-1}}:{{123456789012}}:key/{{93fd6da4-a317-4c17-bfe9-382b5d988b36}}"
}
```

Para usar uma chave de propriedade do serviço, defina `AWSOwnedKey` como `true`:

```
{
   "Rules":[
      {
         "ResourceType":"collection",
         "Resource":[
            "collection/{{autopartsinventory}}",
            "collection/{{sales*}}"
         ]
      }
   ],
   "AWSOwnedKey":true
}
```

A solicitação a seguir cria a política de criptografia:

```
aws opensearchserverless create-security-policy \
    --name {{sales-inventory}} \
    --type encryption \
    --policy file://{{my-policy.json}}
```

Em seguida, use a operação da [CreateCollection](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_CreateCollection.html)API para criar uma ou mais coleções que correspondam a um dos padrões de recursos.

### Exibição de políticas de criptografia
<a name="serverless-encryption-list"></a>

Antes de criar uma coleção, talvez você queira pré-visualizar as políticas de criptografia existentes em sua conta para ver qual delas tem um padrão de recurso que corresponda ao nome da sua coleção. A [ListSecurityPolicies](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_ListSecurityPolicies.html)solicitação a seguir lista todas as políticas de criptografia em sua conta:

```
aws opensearchserverless list-security-policies --type encryption
```

A solicitação retorna informações sobre todas as políticas de criptografia configuradas. Use o conteúdo do elemento `policy` para visualizar as regras de padrões definidas na política:

```
{
   "securityPolicyDetails": [ 
      { 
         "createdDate": 1663693217826,
         "description": "Sample encryption policy",
         "lastModifiedDate": 1663693217826,
         "name": "my-policy",
         "policy": "{\"Rules\":[{\"ResourceType\":\"collection\",\"Resource\":[\"collection/autopartsinventory\",\"collection/sales*\"]}],\"AWSOwnedKey\":true}",
         "policyVersion": "MTY2MzY5MzIxNzgyNl8x",
         "type": "encryption"
      }
   ]
}
```

Para ver informações detalhadas sobre uma política específica, incluindo a chave KMS, use o [GetSecurityPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_GetSecurityPolicy.html)comando.

### Atualização de políticas de criptografia
<a name="serverless-encryption-update"></a>

Se você atualizar a chave do KMS em uma política de criptografia, a alteração só se aplicará às coleções recém-criadas que correspondam ao nome ou padrão configurado. Isso não afeta as coleções existentes que já tenham chaves do KMS atribuídas. 

O mesmo se aplica às regras de correspondência das políticas. Se você adicionar, modificar ou excluir uma regra, a alteração só se aplicará às coleções recém-criadas. As coleções existentes não perdem suas chaves do KMS atribuídas se você modificar as regras de uma política para que ela não corresponda mais ao nome de uma coleção.

**Para atualizar uma política de criptografia no console OpenSearch sem servidor, escolha **Políticas de criptografia**, selecione a política a ser modificada e escolha Editar.** Faça suas alterações e escolha **Salvar**.

Para atualizar uma política de criptografia usando a API OpenSearch Serverless, use a [UpdateSecurityPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_UpdateSecurityPolicy.html)operação. A solicitação a seguir atualiza uma política de criptografia com um novo documento JSON de política:

```
aws opensearchserverless update-security-policy \
    --name sales-inventory \
    --type encryption \
    --policy-version 2 \
    --policy file://{{my-new-policy.json}}
```

### Exclusão de políticas de criptografia
<a name="serverless-encryption-delete"></a>

Quando você exclui uma política de criptografia, todas as coleções que estiverem usando a chave do KMS definida na política não são afetadas. **Para excluir uma política no console OpenSearch sem servidor, selecione a política e escolha Excluir.**

Você também pode usar a [DeleteSecurityPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_DeleteSecurityPolicy.html)operação:

```
aws opensearchserverless delete-security-policy --name {{my-policy}} --type encryption
```

## Criptografia em trânsito
<a name="serverless-encryption-in-transit"></a>

No OpenSearch Serverless, todos os caminhos em uma coleção são criptografados em trânsito usando o Transport Layer Security 1.2 (TLS) com uma cifra padrão do setor. AES-256 O acesso a todas as APIs e OpenSearch Dashboards também é feito por meio do TLS 1.2. O TLS é um conjunto de protocolos criptográficos padrão do setor usados para criptografar informações que são trocadas pela rede.