Trabajo con buckets de Amazon S3 cifrados del lado del servidor - FSx para Lustre

Trabajo con buckets de Amazon S3 cifrados del lado del servidor

FSx para Lustre admite buckets de Amazon S3 que utilizan cifrado del lado del servidor con claves administradas de S3 (SSE-S3) y con AWS KMS keys almacenadas en AWS Key Management Service (SSE-KMS).

Si desea que Amazon FSx cifre los datos al escribir en su bucket de S3, debe configurar el cifrado predeterminado de su bucket de S3 en SSE-S3 o SSE-KMS. Para obtener más información, consulte Configuración del cifrado predeterminado en la Guía del usuario de Amazon S3. Al escribir archivos en su bucket de S3, Amazon FSx sigue la política de cifrado predeterminada de su bucket de S3.

De forma predeterminada, Amazon FSx admite buckets de S3 cifrados mediante SSE-S3. Si desea vincular su sistema de archivos Amazon FSx a un bucket de S3 cifrado mediante el cifrado SSE-KMS, debe añadir una declaración a su política de claves gestionadas por el cliente que permita a Amazon FSx cifrar y descifrar los objetos de su bucket de S3 mediante su clave de KMS.

La siguiente declaración permite a un sistema de archivos Amazon FSx específico cifrar y descifrar objetos para un bucket de S3 específico, bucket_name.

{ "Sid": "Allow access through S3 for the FSx SLR to use the KMS key on the objects in the given S3 bucket", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::aws_account_id:role/aws-service-role/s3.data-source.lustre.fsx.amazonaws.com/AWSServiceRoleForFSxS3Access_fsx_file_system_id" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:CallerAccount": "aws_account_id", "kms:ViaService": "s3.bucket-region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket_name/*" } } }
nota

Si utiliza un KMS con una CMK para cifrar su bucket de S3 con las claves de bucket de S3 habilitadas, establezca el EncryptionContext en la ARN del bucket, no en el ARN del objeto, como en este ejemplo:

"StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket_name" }

La siguiente declaración de política permite que todos los sistemas de archivos de Amazon FSx de su cuenta se vinculen a un bucket de S3 específico.

{ "Sid": "Allow access through S3 for the FSx SLR to use the KMS key on the objects in the given S3 bucket", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:CallerAccount": "aws_account_id", "kms:ViaService": "s3.bucket-region.amazonaws.com" }, "StringLike": { "aws:userid": "*:FSx", "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket_name/*" } } }

Acceder a los buckets de Amazon S3 cifrados del lado servidor en una Cuenta de AWS distinta o desde una VPC compartida

Después de crear un sistema de archivos de FSx para Lustre vinculado a un bucket de Amazon S3 cifrado, debe conceder al rol vinculado al servicio (SLR) AWSServiceRoleForFSxS3Access_fs-01234567890 acceso a la clave de KMS utilizada para cifrar el bucket de S3 antes de leer o escribir datos del bucket de S3 vinculado. Puede utilizar un rol de IAM que ya tenga permisos para acceder a la clave de KMS.

nota

Este rol de IAM debe estar en la cuenta en la que se creó el sistema de archivos de FSx para Lustre (que es la misma cuenta que el SLR de S3), no en la cuenta a la que pertenece la clave de KMS o el bucket de S3.

Utiliza el rol de IAM para llamar a la siguiente AWS KMS API a fin de crear una concesión para el SLR de S3, de modo que el SLR obtenga permiso para acceder a los objetos de S3. Para encontrar la ARN asociado a su SLR, busque sus roles de IAM utilizando el ID del sistema de archivos como cadena de búsqueda.

$ aws kms create-grant --region fs_account_region \ --key-id arn:aws:kms:s3_bucket_account_region:s3_bucket_account:key/key_id \ --grantee-principal arn:aws:iam::fs_account_id:role/aws-service-role/s3.data-source.lustre.fsx.amazonaws.com/AWSServiceRoleForFSxS3Access_file-system-id \ --operations "Decrypt" "Encrypt" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "CreateGrant" "DescribeKey" "ReEncryptFrom" "ReEncryptTo"

Para obtener más información acerca de los roles vinculados a servicios, consulte Uso de roles vinculados a servicios para Amazon FSx.