¿Cómo configuro el acceso entre cuentas desde Amazon QuickSight a un bucket de Amazon S3 de otra cuenta?

5 minutos de lectura
0

Estoy intentando crear un conjunto de datos en Amazon QuickSight con datos de un bucket de Amazon Simple Storage Service (Amazon S3) de otra cuenta. ¿Cómo puedo hacerlo?

Descripción breve

Siga estos pasos para crear un acceso entre cuentas desde Amazon QuickSight (cuenta A) a un bucket cifrado de Amazon S3 de otra cuenta (cuenta B):

  1. Actualice su política de bucket de S3 en la cuenta B (donde se encuentra el bucket de S3).
  2. Añada el bucket de S3 como recurso al que pueda acceder el rol de servicio de QuickSight (cuenta A).
  3. Permita que el rol de servicio de QuickSight acceda a la clave de AWS Key Management Service (KMS) para el bucket de S3.

Nota: En este artículo se asume que el bucket de S3 está cifrado. También se recomienda cifrar el bucket de S3 con una clave de AWS KMS. Para obtener más información sobre cómo habilitar el cifrado predeterminado para Amazon S3, consulte Habilitar el cifrado de bucket predeterminado de Amazon S3.

Resolución

Actualizar la política de bucket de S3 en la cuenta B

Para configurar el acceso entre cuentas de QuickSight a Amazon S3, siga estos pasos:

1.    Actualice la política de bucket de su bucket de S3 en la cuenta B. Por ejemplo:

{
  "Version": "2012-10-17",
  "Id": "BucketPolicy",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::<Account A>:role/service-role/aws-quicksight-service-role-v0"
      },
      "Action": [
        "s3:ListBucket",
        "s3:GetObject",
        "s3:GetObjectVersion"
      ],
      "Resource": [
        "arn:aws:s3:::cross-account-qstest-bucket",
        "arn:aws:s3:::cross-account-qstest-bucket/*"
      ]
    }
  ]
}

Nota: Si el rol aws-quicksight-s3-consumers-role-v0 existe en la cuenta A, asegúrese de usar este rol en su lugar. Sustituya aws-quicksight-service-role-v0 por aws-quicksight-s3-consumers-role-v0 para evitar problemas de conexión con Amazon S3.

2.    Añada el rol de servicio QuickSight de la cuenta A a la lista de usuarios que pueden acceder a la clave de AWS KMS del bucket de S3:

aws kms create-grant --key-id aws_kms_key_arn --grantee-principal quickSight_role_arn --operations Decrypt

Nota: Sustituya aws_kms_key_arn por el ARN de la clave de AWS KMS y quicksight_role_arn por el ARN del rol de QuickSight.

Para obtener el ARN de la clave de AWS KMS:

  1. Abra la consola de Amazon S3.
  2. Vaya al bucket de S3 que contiene el archivo de datos.
  3. Seleccione la pestaña Propiedades. El ARN de la clave de AWS KMS se encuentra en Cifrado predeterminado.

Para obtener el ARN del rol de servicio de QuickSight:

  1. Abra la consola de AWS Identity Access Management (IAM) en la cuenta A.
  2. En el panel de navegación de la izquierda, seleccione Roles.
  3. Busque aws-quicksight-service-role.
  4. Seleccione el rol de servicio de QuickSight y copie el ARN.

Nota: Si el rol aws-quicksight-s3-consumers-role-v0 existe en la cuenta A, asegúrese de utilizar este rol en su lugar. De lo contrario, es posible que reciba un error al intentar conectarse a Amazon S3.

Añadir el bucket de S3 como recurso al que pueda acceder el rol de servicio de QuickSight

Para permitir que el rol de servicio de QuickSight acceda al bucket de S3 de la cuenta B, complete los siguientes pasos:

  1. Abra la consola de Amazon QuickSight.
  2. Elija Administrar QuickSight.
  3. Seleccione Seguridad y permisos.
  4. Seleccione Añadir o eliminar.
  5. Seleccione Detalles.
  6. Elija Seleccionar buckets de S3.
  7. Elija la pestaña Buckets de S3 a los que puede acceder en AWS para comprobar que su bucket de S3 aparezca en la lista de acceso de QuickSight.
  8. (Opcional) Si su bucket de S3 no aparece en la lista, añádalo en Usar otro bucket.
  9. Seleccione Finalizar.

Permitir que el rol de servicio de QuickSight acceda a la clave de AWS KMS para el bucket de S3

Añada la siguiente política de IAM insertada al rol de servicio de QuickSight de la cuenta A:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ExampleStmt3",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt"
        ],
      "Resource": ""arn:aws:kms:us-east-1:<account ID of your S3 bucket>:key/<KEYID>"
    }
  ]
}

Nota: La política insertada anterior permite que el rol de servicio de QuickSight acceda a la clave de AWS KMS de la cuenta B. Sustituya ExampleStmt3 por el ID de su sentencia.

Importante: Si el rol aws-quicksight-s3-consumers-role-v0 existe en la cuenta A, debe asociar la política de AWS KMS al rol. La política de AWS KMS descifra los datos del bucket de S3. Si, en cambio, asocia la política de rol actualizada al rol de servicio de QuickSight, es posible que aparezca un error de permisos. Para obtener información sobre cómo resolver el error de permisos, consulte ¿Cómo soluciono los errores de permisos de recursos de AWS en Amazon QuickSight?

Otras consideraciones

Al configurar el acceso entre cuentas desde QuickSight a un bucket de S3 de otra cuenta, tenga en cuenta lo siguiente:


Información relacionada

Editar claves

No puedo conectarme a Amazon S3

Solución de problemas de Amazon QuickSight

Consultar una política de claves (consola)

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años