Registro de una ubicación cifrada de Amazon S3 entre cuentas AWS
AWS Lake Formation se integra con AWS Key Management Service (AWS KMS) para permitirle configurar más fácilmente otros servicios integrados para cifrar y descifrar datos en ubicaciones de Amazon Simple Storage Service (Amazon S3).
Son compatibles tanto las claves administradas por el cliente como las Claves administradas por AWS. No es compatible el cifrado/descifrado del cliente.
importante
Evite registrar un bucket de Amazon S3 que tenga activada la opción El solicitante paga. Para los buckets registrados en Lake Formation, el rol utilizado para registrar el bucket se considera siempre como el solicitante. Si otra cuenta de AWS accede al bucket, se cobrará al propietario del bucket por el acceso a los datos si el rol pertenece a la misma cuenta que el propietario del bucket.
En esta sección se explica cómo registrar una ubicación de Amazon S3 en las siguientes circunstancias:
-
Los datos de la ubicación de Amazon S3 se cifran con una clave KMS creada en AWS KMS.
-
La ubicación de Amazon S3 no está en la misma cuenta AWS que AWS Glue Data Catalog.
-
La clave KMS está o no en la misma cuenta AWS que el Catálogo de datos.
Para registrar un bucket de Amazon S3 cifrado con AWS KMS en la cuenta B de AWS con un rol AWS Identity and Access Management de (IAM) en la cuenta A de AWS se requieren los siguientes permisos:
-
El rol de la cuenta A debe conceder permisos sobre el bucket de la cuenta B.
-
La política de bucket de la cuenta B debe conceder permisos de acceso al rol de la cuenta A.
-
Si la clave de KMS está en la cuenta B, la política de claves debe conceder el acceso al rol de la cuenta A y el rol de la cuenta A debe conceder permisos sobre la clave de KMS.
En el siguiente procedimiento, se crea un rol en la cuenta AWS que contiene el Catálogo de datos (la cuenta A en el análisis anterior). A continuación, utilice este rol para registrar la ubicación. Lake Formation asume este rol al acceder a los datos subyacentes en Amazon S3. El rol asumido tiene los permisos necesarios en la clave de KMS. Como resultado, no tendrá que conceder permisos sobre la clave KMS a las entidades principales que accedan a los datos subyacentes con trabajos ETL o con servicios integrados como Amazon Athena.
importante
No puede utilizar el rol vinculado al servicio Lake Formation para registrar una ubicación en otra cuenta. En su lugar, debe utilizar un rol definido por el usuario. El rol debe cumplir los requisitos de Requisitos de los roles utilizados para registrar ubicaciones. Para obtener más información sobre el rol vinculado a servicios, consulte Permisos de rol vinculados al servicio para Lake Formation.
Antes de empezar
Revise los requisitos del rol utilizado para registrar la ubicación.
Para registrar una ubicación cifrada de Amazon S3 entre cuentas de AWS
-
En la misma cuenta de AWS que el Catálogo de datos, inicie sesión en la AWS Management Console y abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
Cree un nuevo rol o consulte uno existente que cumpla con los requisitos de Requisitos de los roles utilizados para registrar ubicaciones. Asegúrese de que el rol incluye una política que concede permisos de Amazon S3 en la ubicación.
-
Si la clave de KMS no está en la misma cuenta que el Catálogo de datos, añada al rol una política integrada que conceda los permisos necesarios para la clave de KMS. A continuación, se muestra una política de ejemplo. Sustituya
<region-cmk>
y<id-cuenta-cmk>
por la región y el número de cuenta de la clave KMS. Sustituya<id-clave>
por el ID de la llave.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "arn:aws:kms:
<cmk-region>
:<cmk-account-id>
:key/<key-id>
" } ] } -
En la consola de Amazon S3, agregue una política de bucket que conceda los permisos de Amazon S3 necesarios para el rol. A continuación se muestra un ejemplo de política de bucket. Sustituya
<id-cuenta-catalogo>
por el número de cuenta de AWS del Catálogo de datos,<nombre-rol>
por el nombre de su rol y<nombre-bucket>
por el nombre del bucket.{ "Version": "2012-10-17", "Statement": [ { "Effect":"Allow", "Principal": { "AWS":"arn:aws:iam::
<catalog-account-id>
:role/<role-name>
" }, "Action":"s3:ListBucket", "Resource":"arn:aws:s3:::<bucket-name>
" }, { "Effect":"Allow", "Principal": { "AWS":"arn:aws:iam::<catalog-account-id>
:role/<role-name>
" }, "Action": [ "s3:DeleteObject", "s3:GetObject", "s3:PutObject" ], "Resource":"arn:aws:s3:::<bucket-name>
/*" } ] } -
En AWS KMS, agregue el rol como usuario de la clave KMS.
-
Abra la consola de AWS KMS en https://console.aws.amazon.com/kms
. A continuación, inicie sesión como usuario administrador o como usuario que puede modificar la política de claves de la clave de KMS utilizada para cifrar la ubicación. -
En el panel de navegación, seleccione Claves administradas por el cliente y, a continuación, elija el nombre de la clave KMS.
-
En la página de detalles de la clave KMS, en la pestaña Política de claves, si no se muestra la vista JSON de la política de claves, seleccione Cambiar a la vista de políticas.
-
En la sección Política de claves, seleccione Editar y añada el Nombre de recurso de Amazon (ARN) del rol al objeto
Allow use of the key
, como se muestra en el siguiente ejemplo.nota
Si falta ese objeto, agréguelo con los permisos que se muestran en el ejemplo.
... { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::
<catalog-account-id>
:role/<role-name>
" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, ...Para más información, consulte Permitir a los usuarios de otras cuentas utilizar una clave KMS
en la Guía para desarrolladores de AWS Key Management Service.
-
-
Abra la consola de AWS Lake Formation en https://console.aws.amazon.com/lakeformation/
. Inicie sesión en la cuenta AWS del Catálogo de datos como administrador del lago de datos. -
En el panel de navegación, bajo Administración, seleccione Ubicaciones de los lagos de datos.
-
Seleccione Registrar ubicación.
-
En la página Registrar ubicación, para la ruta de Amazon S3, introduzca el nombre del bucket como
s3://
. Sustituya<bucket>
/<prefix>
<bucket>
por el nombre del bucket y<prefijo>
por el resto de la ruta para la ubicación.nota
Debe escribir la ruta porque los buckets entre cuentas no aparecen en la lista cuando selecciona Examinar.
-
Para el rol de IAM, elija el rol del paso 2.
-
Seleccione Registrar ubicación.