

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

# Conceder acesso ao recurso de exportação do Gremlin do Amazon S3
<a name="granting-access-gremlin"></a>

 **Políticas do IAM necessárias** 

1.  **Acesso de leitura da consulta do Neptune** 

   ```
   {
     "Sid": "NeptuneQueryRead",
     "Effect": "Allow",
     "Action": ["neptune-db:Read*"],
     "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD12/*"
   }
   ```

    **Por que é necessária:** essa permissão permite ler dados dos bancos de dados do Neptune, o que é necessário para executar as consultas do Gremlin que serão exportadas. O exemplo anterior permite consultas de leitura. Para uma read/write consulta, são necessárias write/delete permissões. 

1.  **Permissões de exportação do Amazon S3** 

   ```
   {
     "Sid": "NeptuneS3Export",
     "Effect": "Allow",
     "Action": [
       "s3:ListBucket",
       "s3:PutObject",
       "s3:AbortMultipartUpload",
       "s3:GetBucketPublicAccessBlock"
     ],
     "Resource": "arn:aws:s3:::neptune-export-bucket/*"
   }
   ```

    **Por que cada permissão é necessária:** 
   +  `s3:ListBucket`: necessária para verificar a existência do bucket e o conteúdo da lista. 
   +  `s3:PutObject`: necessária para gravar os dados exportados no Amazon S3. 
   +  `s3:AbortMultipartUpload`: necessária para limpar uploads incompletos de várias partes se a exportação falhar. 
   +  `s3:GetBucketPublicAccessBlock`: necessária como medida de segurança para verificar se o bucket não é público antes de exportar dados. 

1.  **AWS KMSpermissões - opcional.** Só são necessárias se você estiver usando criptografia personalizada do AWS KMS. 

   ```
   {
     "Sid": "NeptuneS3ExportKMS",
     "Effect": "Allow",
     "Action": [
       "kms:Decrypt",
       "kms:GenerateDataKey",
       "kms:DescribeKey"
     ],
     "Resource": "arn:aws:kms:<REGION>:<AWS_ACCOUNT_ID>:key/mrk-48971c37"
       "Condition": {
       "StringEquals": {
         "kms:ViaService": [
           "s3.<REGION>.amazonaws.com",
           "rds.<REGION>.amazonaws.com"
         ]
       }
     }
   }
   ```

    **Por que cada permissão é necessária:** 
   +  `kms:Decrypt`: necessário para descriptografar a AWS KMS chave para criptografia de dados. 
   +  `kms:GenerateDataKey`: necessária para gerar chaves de dados para criptografar os dados exportados. 
   +  `kms:DescribeKey`: necessário para verificar e recuperar informações sobre a AWS KMS chave. 
   +  `kms:ViaService`: aumenta a segurança ao garantir que a chave não possa ser usada por essa função em nenhum outro AWS serviço. 

**Pré-requisitos importantes**
+  **Autenticação do IAM:** deve estar habilitada no cluster do Neptune para aplicar essas permissões. 
+  **Endpoint VPC:** 
  +  um endpoint da VPC do tipo gateway para o Amazon S3 é necessário para permitir que o Neptune se comunique com o Amazon S3. 
  +  Para usar AWS KMS criptografia personalizada na consulta, AWS KMS é necessário um endpoint VPC do tipo interface para permitir que o Neptune se comunique com. AWS KMS 
+  **Configuração de bucket do Amazon S3:** 
  +  não deve ser público. 
  +  Deve ter uma regra de ciclo de vida para limpar uploads incompletos de várias partes. 
  +  Criptografará automaticamente novos objetos. 

 Essas permissões e pré-requisitos garantem a exportação segura e confiável dos resultados da consulta do Gremlin, mantendo controles de acesso e medidas de proteção de dados adequados. 