Saltar al contenido principal
Esta guía proporciona los pasos necesarios para configurar la integración de Kameleoon con Amazon Redshift. La configuración debe realizarse tanto en la interfaz de usuario de Kameleoon como en su cuenta de AWS. Algunas de estas acciones pueden necesitar adaptarse a su entorno específico de AWS. En cualquier caso, estos pasos deben ser realizados por el administrador de su cuenta de AWS.

Paso 1: Crear usuario y rol IAM de AWS

Debe crear un usuario y rol IAM que Kameleoon utilizará para acceder a su cluster de Redshift. Puede crearlos en la AWS Management Console o en la AWS CLI. Proporcionamos comandos de ejemplo para la AWS CLI.

1. Crear un usuario IAM

Utilice el siguiente comando para crear un usuario IAM dedicado para Kameleoon: aws iam create-user --user-name kameleoon_user A continuación, genere una clave de acceso para el kameleoon_user: aws iam create-access-key --user-name kameleoon_user Asegúrese de conservar los campos AccessKeyId y SecretAccessKey que se encuentran en el JSON devuelto por este comando, ya que se le pedirá que los proporcione a Kameleoon al realizar la configuración en la interfaz de usuario de Kameleoon.

2. Crear un rol IAM

Cree un rol que Kameleoon pueda asumir, permitiéndole interactuar con su cluster de Redshift. Utilice el siguiente comando para crear el rol con una política de confianza JSON inline:
aws iam create-role --role-name kameleoon_role --assume-role-policy-document '{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{account_id}:user/kameleoon_user",
                "Service": [
    				"s3.amazonaws.com",
    				"redshift.amazonaws.com",
   				"iam.amazonaws.com",
    				"redshift-serverless.amazonaws.com"
]
            },
            "Action": "sts:AssumeRole"
        }
    ]
}'

Sustituya {account_id} por su ID de cuenta de AWS. Cuando se utiliza Redshift como fuente, s3.amazonaws.com puede omitirse. Cuando se utiliza Provisioned, redshift-serverless.amazonaws.com puede omitirse.

Para Amazon Redshift como destino: conceder derechos de acceso S3 Redshift a un rol IAM

Cree y asocie un rol S3 para permitir a Kameleoon interactuar con el bucket S3 de su elección y copiar datos de S3 a Redshift.
aws iam attach-role-policy \
  --role-name kameleoon_role \
  --policy-document '{
  	  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:ListBucket",
        "s3:DeleteObject"
      ],
      "Resource": "arn:aws:s3:::{s3_bucket_name}/*"
    },
    {
"Effect": "Allow",
"Action": [
  "redshift:GetClusterCredentialsWithIAM",
  "redshift:GetClusterCredentials",
  "redshift:DescribeClusters"
],
"Resource": "arn:aws:redshift:{aws_region}:{account_id}:dbuser:kameleoon_user"
    }
  ]
}'
Sustituya {s3_bucket_name}, {aws_region} y {account_id} por sus datos. Alternativamente, utilice las políticas existentes AmazonS3FullAccess y AmazonRedshiftFullAccess.

Paso 2: Otorgar permisos al rol de Kameleoon

Conceda los permisos necesarios al rol IAM asociado a Kameleoon para permitir la interacción con su base de datos de Redshift. Los permisos deben concederse a nivel de usuario SQL mediante comandos SQL. El usuario SQL por defecto creado para un rol IAM se llama IAMR:{role_name}, por lo que, si el rol que utiliza se llama kameleoon_role, ejecutará estos comandos para el usuario SQL IAMR:kameleoon_role.

Para Amazon Redshift como fuente

1. Conceder acceso a un esquema existente

Proporcione al rol IAM de Kameleoon acceso al esquema y tablas relevantes en su base de datos de Redshift. Por ejemplo, si quiere que Kameleoon ingiera datos de su tabla “users” en el esquema schema_containing_data, ejecute los siguientes comandos SQL:
GRANT USAGE ON SCHEMA "schema_containing_data" TO "IAMR:kameleoon_role";
GRANT SELECT ON TABLE "schema_containing_data"."users" TO "IAMR:kameleoon_role";

2. Crear el esquema de configuración de Kameleoon

Cree un nuevo esquema para las configuraciones de Kameleoon y conceda los permisos necesarios:
CREATE SCHEMA "kameleoon_configuration";

GRANT USAGE ON SCHEMA "kameleoon_configuration" TO "IAMR:kameleoon_role";
GRANT CREATE ON SCHEMA "kameleoon_configuration" TO "IAMR:kameleoon_role"

3. Conceder permisos DML en el esquema de configuración de Kameleoon

Conceda al rol de Kameleoon permisos para insertar, actualizar y eliminar datos en el esquema kameleoon_configuration:
GRANT INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA "kameleoon_configuration" TO "IAMR:kameleoon_role";

4. Establecer privilegios por defecto para futuras tablas

Asegúrese de que cualquier tabla futura creada en el esquema kameleoon_configuration conceda automáticamente los permisos necesarios al rol de Kameleoon:
ALTER DEFAULT PRIVILEGES IN SCHEMA "kameleoon_configuration" 
GRANT INSERT, UPDATE, DELETE ON TABLES TO "IAMR:kameleoon_role";

Para Amazon Redshift como destino

1. Crear el esquema de eventos de Kameleoon

Cree un nuevo esquema para los eventos de Kameleoon y conceda los permisos necesarios:
CREATE SCHEMA "kameleoon_events";

GRANT USAGE ON SCHEMA "kameleoon_events" TO "IAMR:kameleoon_role";
GRANT CREATE ON SCHEMA "kameleoon_events" TO "IAMR:kameleoon_role";

2. Conceder permisos DML en el esquema de eventos de Kameleoon

Conceda al rol de Kameleoon permisos para insertar, actualizar y eliminar datos en el esquema kameleoon_events:
GRANT INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA "kameleoon_events" TO "IAMR:kameleoon_role";

3. Establecer privilegios por defecto para futuras tablas

Asegúrese de que cualquier tabla futura creada en el esquema kameleoon_events conceda automáticamente los permisos necesarios al rol de Kameleoon:
ALTER DEFAULT PRIVILEGES IN SCHEMA "kameleoon_events" 
GRANT INSERT, UPDATE, DELETE ON TABLES TO "IAMR:kameleoon_role";

Paso 3: Habilitar y configurar la integración en la interfaz de usuario de Kameleoon

Vaya a la página Integrations en su cuenta de Kameleoon y busque Amazon Redshift en la lista.
Haga clic en Install the tool y rellene los siguientes campos para proporcionar a Kameleoon las credenciales de acceso a su cluster de Redshift, después de seleccionar primero el proyecto en el que quiere configurar este acceso en la lista que aparece a la izquierda.
Los campos requeridos son:
  • AWS Account ID: el identificador numérico único de su cuenta de Amazon Web Services.
  • AWS Role name: el nombre del rol IAM de AWS que creó para Kameleoon según las instrucciones de las secciones anteriores.
  • AWS Access key ID y Secret access key ID: estos dos campos se proporcionan al crear las credenciales para el rol de AWS. Si utilizó la interfaz de línea de comandos de AWS para crear esta clave como se describe en el paso uno de este artículo, estos dos valores se proporcionaron en la respuesta JSON a ese comando.
Haga clic en Confirm. Sus credenciales se han cargado para el proyecto. A continuación, hay una miniatura ADVANCED SETUP que contiene las direcciones IP que Kameleoon utilizará para conectarse a su warehouse. Muchas organizaciones filtran las direcciones IP autorizadas a conectarse a su warehouse. Si este es el caso, puede autorizar estas IPs desde su cuenta de AWS con los siguientes pasos.

Paso 4: Configurar el security group para Redshift

Para permitir que Kameleoon se conecte a su cluster de Redshift, autorice las consultas desde las direcciones IP de Kameleoon en su security group. Esto puede hacerse en la consola de AWS:
  1. Identificar el security group: el security group asociado a su cluster de Redshift se puede ver en el panel de Redshift, y puede acceder a la página de configuración de este security group desde allí. Si está utilizando Redshift Serverless, busque el Security Group de su Workgroup.
  2. Añadir reglas de entrada
    • Vaya a la pestaña Inbound Rules.
    • Haga clic en Edit inbound rules > Add rule.
    • Establezca los siguientes parámetros:
      • Type: Custom TCP rule
      • Port range: 5439 (puerto por defecto de Redshift)
      • Source: Custom (añada las direcciones IP de Kameleoon mostradas en la sección de integración de Redshift de la interfaz de usuario de Kameleoon)

Paso 5: Abrir el VPC del Workgroup a conexiones externas

Asegúrese de que el VPC asociado a su cluster de Redshift esté configurado para permitir conexiones externas. Por simplicidad, puede hacer el VPC accesible públicamente y confiar únicamente en la configuración del Security Group. Un enfoque más seguro es ajustar la network Access Control List de su subred VPC. Para hacerlo, modifique la configuración del VPC en su consola de AWS del siguiente modo:
  1. Acceder a la configuración del VPC: Vaya al panel VPC en la AWS Management Console.
  2. Modificar Network ACLs:
    • Vaya a la sección Network ACLs.
    • Localice la ACL asociada a su VPC.
    • Modifique las reglas de entrada y salida para permitir el tráfico desde las direcciones IP de Kameleoon en el puerto 5439.
  3. Actualizar las route tables: Asegúrese de que las route tables asociadas a su VPC estén correctamente configuradas para enrutar el tráfico a su cluster de Redshift.