

Este guia documenta o novo console de administração do AWS Wickr, lançado em 13 de março de 2025. Para obter a documentação sobre a versão clássica do console de administração do AWS Wickr, consulte o [Classic Administration Guide](https://docs.aws.amazon.com/wickr/latest/adminguide-classic/what-is-wickr.html).

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

# Configuração de chave KMS personalizada para serviço de retenção de dados
<a name="custom-kms-key"></a>

Para usar suas próprias chaves KMS com o serviço de retenção de dados, crie chaves com as seguintes configurações antes de lançar o produto:

Chave de retenção  
+ Tipo de chave: Simétrico () `SYMMETRIC_DEFAULT`
+ Uso da chave: criptografar e descriptografar
+ Rotação de chaves: recomendado para ativar

Chave de recuperação de senha  
+ Tipo de chave: Assimétrico () `ECC_NIST_P384`
+ Uso da chave: acordo chave
+ Rotação de chaves: não suportada para teclas assimétricas

## Configuração personalizada da política de chaves KMS
<a name="custom-kms-key-policy-setup"></a>

1. Crie suas chaves KMS com as configurações necessárias acima.

1. Copie o **ID da chave** de cada chave do console KMS.

1. Inicie o produto de retenção de dados no Service Catalog, inserindo as IDs de chave `PasswordRecoveryKeyId` nos campos `KmsKeyId` e.

1. Depois que a pilha for concluída, navegue até a guia **Saídas**.

1. Copie os valores de `DRSCustomerCrossAccountRoleArn` `DecryptionLambdaRoleArn` e.

1. Abra o console KMS e selecione sua chave de retenção personalizada.

1. Na seção **Key Policy (Política de chaves)**, selecione **Switch to policy view (Alternar para a visualização da política)**.

1. Escolha **Editar**.

1. Adicione as seguintes declarações à `"Statement"` matriz da sua política de chaves, substituindo os ARNs do espaço reservado pelos valores da etapa 5.

1. Escolha **Salvar alterações**.

1. Repita as etapas 6 a 10 para a chave de recuperação de senha usando as instruções de recuperação de senha abaixo.

### Chave de retenção — declarações a serem adicionadas
<a name="custom-kms-key-retention-statements"></a>

```
{
  "Sid": "EnclaveGenerateDataKey",
  "Effect": "Allow",
  "Principal": {
    "AWS": "{DRSCustomerCrossAccountRoleArn}"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:RecipientAttestation:PCR0": "*",
      "kms:RecipientAttestation:PCR1": "*",
      "kms:RecipientAttestation:PCR2": "*"
    },
    "ForAnyValue:StringEquals": {
      "kms:EncryptionContextKeys": [
        "aws:wickr:network:id",
        "aws:wickr:app:id"
      ]
    }
  }
},
{
  "Sid": "EnclaveDescribeKey",
  "Effect": "Allow",
  "Principal": {
    "AWS": "{DRSCustomerCrossAccountRoleArn}"
  },
  "Action": "kms:DescribeKey",
  "Resource": "*"
},
{
  "Sid": "EnclaveDecryptWithAttestation",
  "Effect": "Allow",
  "Principal": {
    "AWS": "{DRSCustomerCrossAccountRoleArn}"
  },
  "Action": "kms:Decrypt",
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:RecipientAttestation:PCR0": "*",
      "kms:RecipientAttestation:PCR1": "*",
      "kms:RecipientAttestation:PCR2": "*"
    },
    "ForAnyValue:StringEquals": {
      "kms:EncryptionContextKeys": "aws:wickr:app:id"
    }
  }
},
{
  "Sid": "DecryptLambdaDecrypt",
  "Effect": "Allow",
  "Principal": {
    "AWS": "{DecryptionLambdaRoleArn}"
  },
  "Action": "kms:Decrypt",
  "Resource": "*",
  "Condition": {
    "ForAnyValue:StringEquals": {
      "kms:EncryptionContextKeys": "aws:wickr:network:id"
    }
  }
}
```

A finalidade de cada declaração pode ser encontrada na [Criptografia inativa](encryption-rest.md) seção **Configurando permissões para usar uma chave KMS gerenciada pelo cliente**.

### Chave de recuperação de senha — Declarações a serem adicionadas
<a name="custom-kms-key-password-recovery-statements"></a>

```
{
  "Sid": "EnclaveDeriveSharedSecret",
  "Effect": "Allow",
  "Principal": {
    "AWS": "{DRSCustomerCrossAccountRoleArn}"
  },
  "Action": "kms:DeriveSharedSecret",
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:RecipientAttestation:PCR0": "*",
      "kms:RecipientAttestation:PCR1": "*",
      "kms:RecipientAttestation:PCR2": "*"
    }
  }
},
{
  "Sid": "CustomerGetPublicKey",
  "Effect": "Allow",
  "Principal": {
    "AWS": "{DRSCustomerCrossAccountRoleArn}"
  },
  "Action": [
    "kms:DescribeKey",
    "kms:GetPublicKey"
  ],
  "Resource": "*"
}
```

Objetivo de cada declaração:

**EnclaveDeriveSharedSecret**
+ kms: DeriveSharedSecret — Invocado pelo Nitro Enclave para realizar o acordo de chave ECDH usando a chave privada da chave de recuperação de senha. Isso deriva de um segredo compartilhado que é usado para descriptografar sua senha durante o fluxo de trabalho de migração. Só é permitido quando o enclave fornece um documento de atestado válido do Nitro Enclave (PCR0/1/2 condições), garantindo que o acordo chave não ocorra fora do enclave.

**CustomerGetPublicKey**
+ kms: GetPublicKey — Permite a recuperação da chave pública ECC P-384 da chave de recuperação de senha. Isso é usado pelo script de coleta de senhas executado na máquina do cliente para realizar a criptografia ECDH local da senha.
+ kms: DescribeKey — Permite a recuperação dos metadados principais (especificação da chave, uso, status) para validação.

### Exemplo — Chave de retenção
<a name="custom-kms-key-example"></a>

Antes:

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Sid": "YourExistingStatements",
      "Effect": "...",
      "...": "..."
    }
  ]
}
```

Depois:

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Sid": "YourExistingStatements",
      "Effect": "...",
      "...": "..."
     },
    {
      "Sid": "EnclaveGenerateDataKey",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::{account-id}:role/DRSCustomerCrossAccountRole-{network-id}-{region}"
      },
      "Action": "kms:GenerateDataKey",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:RecipientAttestation:PCR0": "*",
          "kms:RecipientAttestation:PCR1": "*",
          "kms:RecipientAttestation:PCR2": "*"
        },
        "ForAnyValue:StringEquals": {
          "kms:EncryptionContextKeys": [
            "aws:wickr:network:id",
            "aws:wickr:app:id"
          ]
        }
      }
    },
    {
      "Sid": "EnclaveDescribeKey",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::{account-id}:role/DRSCustomerCrossAccountRole-{network-id}-{region}"
      },
      "Action": "kms:DescribeKey",
      "Resource": "*"
    },
    {
      "Sid": "EnclaveDecryptWithAttestation",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::{account-id}:role/DRSCustomerCrossAccountRole-{network-id}-{region}"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:RecipientAttestation:PCR0": "*",
          "kms:RecipientAttestation:PCR1": "*",
          "kms:RecipientAttestation:PCR2": "*"
        },
        "ForAnyValue:StringEquals": {
          "kms:EncryptionContextKeys": "aws:wickr:app:id"
        }
      }
    },
    {
      "Sid": "DecryptLambdaDecrypt",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::{account-id}:role/{DecryptionLambdaRoleName}"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "kms:EncryptionContextKeys": "aws:wickr:network:id"
        }
      }
    }
  ]
}
```