Concesión de acceso a la característica de exportación de Gremlin a Amazon S3 - Amazon Neptune

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Concesión de acceso a la característica de exportación de Gremlin a Amazon S3

Políticas de IAM necesarias

  1. Acceso de lectura a consultas de Neptune

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

    Por qué es necesario: este permiso permite leer datos de las bases de datos de Neptune, lo cual es necesario para ejecutar las consultas de Gremlin que se van a exportar. El ejemplo anterior permite consultas de lectura. Para read/write realizar una consulta, se requieren write/delete permisos.

  2. Permisos de exportación de Amazon S3

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

    Por qué se necesita cada permiso:

    • s3:ListBucket: necesario para verificar la existencia del bucket y enumerar su contenido.

    • s3:PutObject: necesario para escribir los datos exportados en Amazon S3.

    • s3:AbortMultipartUpload: necesario para limpiar las cargas de varias partes incompletas en caso de que la exportación no se realice correctamente.

    • s3:GetBucketPublicAccessBlock: necesario como medida de seguridad para verificar que el bucket no es público antes de exportar los datos.

  3. AWS KMSpermisos: opcionales. Solo es necesario si se utiliza el cifrado personalizado de 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 qué se necesita cada permiso:

    • kms:Decrypt: Necesario para descifrar la AWS KMS clave de cifrado de datos.

    • kms:GenerateDataKey: necesario para generar claves de datos para el cifrado de los datos exportados.

    • kms:DescribeKey: Necesario para verificar y recuperar información sobre la AWS KMS clave.

    • kms:ViaService: Aumenta la seguridad al garantizar que este rol no pueda utilizar la clave para ningún otro AWS servicio.

Requisitos previos importantes
  • Autenticación de IAM: debe estar habilitada en el clúster de Neptune para aplicar estos permisos.

  • Punto de conexión de VPC:

    • Para que Neptune pueda comunicarse con Amazon S3e, se requiere un punto de conexión de VPC de tipo puerta de enlace para Amazon S3.

    • Para usar el AWS KMS cifrado personalizado en la consulta, se requiere un punto de enlace de VPC de tipo interfaz AWS KMS para permitir que Neptune se comunique con él. AWS KMS

  • Configuración del bucket de Amazon S3:

    • No debe ser público.

    • Debe tener una regla de ciclo de vida para limpiar las cargas de varias partes incompletas.

    • Cifrará automáticamente los objetos nuevos.

Estos permisos y requisitos previos garantizan una exportación segura y fiable de los resultados de las consultas de Gremlin, al tiempo que se mantienen los controles de acceso y las medidas de protección de datos adecuados.