Conceder acesso ao recurso de exportação do Gremlin do Amazon S3 - Amazon Neptune

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

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.

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

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