Skip to main content

Cloud Execution for Desktop en AWS

Sigue esta guía para implementar el módulo de Cloud Execution for Desktop para el procesamiento privado de datos de AWS.

Requisitos previos

Antes de implementar el módulo de Cloud Execution for Desktop, debes completar estos pasos en la página de Configurar la cuenta de AWS y VPC para datos privados:

  1. Se configuró una VPC dedicada a Alteryx One Platform como se menciona en la sección Crear una VPC.

  2. Cuenta de servicio y rol de IAM base adjuntos a la cuenta de servicio tal y como se menciona en la sección Configurar IAM.

  3. Se activó correctamente el aprovisionamiento de procesamiento privado de datos, como se menciona en la sección Aprovisionamiento de manejo privado de datos de activación.

Configuración de cuenta

Paso 1: Cómo configurar IAM

Paso 1a: Crear una política de IAM de Cloud Execution

Nota

AAC_CEFD_SA_Policy es un nombre de política de ejemplo. Puedes elegir cualquier nombre para la política, pero el nombre debe comenzar con AAC_CEFD.

Debes crear una política de IAM personalizada. Nómbrala AAC_CEFD_SA_Policy y utiliza el siguiente documento de política. Recomendamos utilizar la pestaña JSON en lugar del editor visual. Alteryx One requiere algunos permisos de * para ejecutarse. Espera algunas advertencias de seguridad cuando crees la política. Ten en cuenta que el documento de la política de IAM admite la creación de roles e incluye una política en línea para que la función Lambda asuma roles.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::*:role/*",
            "Condition": {
                "StringEqualsIfExists": {
                    "iam:PassedToService": [
                        "ec2.amazonaws.com",
                        "ec2.amazonaws.com.cn"
                    ]
                }
            }
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "iam:CreateServiceLinkedRole",
                "kms:CreateGrant",
                "kms:Decrypt",
                "kms:DescribeKey",
                "kms:Encrypt",
                "kms:GetKeyPolicy",
                "kms:GetKeyRotationStatus",
                "kms:ListGrants",
                "kms:ListResourceTags",
                "kms:ListRetirableGrants",
                "kms:PutKeyPolicy",
                "kms:RetireGrant",
                "kms:RevokeGrant",
                "kms:ScheduleKeyDeletion",
                "kms:TagResource",
                "kms:UntagResource"
            ],
            "Resource": [
                "arn:aws:kms:*:*:key/*",
                "arn:aws:iam::*:role/*"
            ]
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": [
                "iam:GetPolicy",
                "iam:GetPolicyVersion",
                "iam:GetRole",
                "iam:GetRolePolicy",
                "iam:PutRolePolicy",
                "iam:DeleteRolePolicy",
                "iam:DetachRolePolicy",
                "iam:AttachRolePolicy",
                "iam:GetUser",
                "iam:GetUserPolicy",
                "iam:ListInstanceProfilesForRole",
                "iam:ListPolicyTags",
                "iam:ListPolicyVersions",
                "iam:ListRolePolicies",
                "iam:PassRole",               
                "iam:TagPolicy",
                "iam:TagRole",                
                "iam:UntagPolicy",
                "iam:UntagRole",              
                "iam:UpdateAssumeRolePolicy",
                "iam:CreatePolicy",
                "iam:CreatePolicyVersion",
                "iam:CreateRole",
                "iam:DeletePolicy",
                "iam:DeletePolicyVersion",
                "iam:DeleteRole",
                "iam:PassRole",
                "iam:PutRolePolicy",
                "iam:UpdateRole"
            ],
            "Resource": [
                "arn:aws:iam::*:policy/*",
                "arn:aws:iam::*:oidc-provider/*",
                "arn:aws:iam::*:user/*",
                "arn:aws:iam::*:role/*"
            ]
        },
        {
            "Sid": "VisualEditor3",
            "Effect": "Allow",
            "Action": [
                "autoscaling:*",
                "ec2:*",
                "elasticloadbalancing:*",
                "iam:GetAccountName",
                "iam:ListAccountAliases",
                "iam:ListRoles",
                "iam:CreateInstanceProfile",
                "iam:DeleteInstanceProfile",
                "iam:GetInstanceProfile",
                "iam:TagInstanceProfile",
                "iam:UntagInstanceProfile", 
                "iam:RemoveRoleFromInstanceProfile", 
                "iam:AddRoleToInstanceProfile", 
                "logs:CreateLogGroup",
                "logs:DeleteLogGroup",
                "logs:DescribeLogGroups",
                "logs:ListTagsLogGroup",
                "logs:PutRetentionPolicy",
                "logs:TagResource",
                "logs:UntagResource",
                "logs:TagLogGroup",
                "logs:UntagLogGroup",
                "networkmanager:Describe*",
                "networkmanager:Get*",
                "networkmanager:List*",
                "sts:GetCallerIdentity",
                "logs:CreateLogStream",
                "logs:DeleteLogStream",
                "logs:PutLogEvents",
                "lambda:GetFunction",
                "lambda:GetFunctionCodeSigningConfig",
                "lambda:GetPolicy",
                "lambda:CreateFunction",
                "lambda:DeleteFunction",
                "lambda:ListVersionsByFunction",
                "lambda:AddPermission",
                "lambda:RemovePermission",
                "lambda:UntagResource", 
                "lambda:UpdateFunctionConfiguration",
                "lambda:UpdateFunctionCode",
                "lambda:tagResource",
                "events:DescribeRule",
                "events:DeleteRule",
                "events:PutRule",
                "events:PutTargets",
                "events:RemoveTargets",
                "events:ListTagsForResource",
                "events:ListTargetsByRule"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor4",
            "Effect": "Allow",
            "Action": "secretsmanager:*",
            "Resource": "arn:aws:secretsmanager:*:*:secret:*"
        }
    ]
}

Paso 1b: Etiquetar la política de IAM

Etiqueta la política de IAM personalizada que creaste en el paso 1a.

Nombre de la etiqueta

Valor

AACResource

aac_sa_custom_policy

Paso 1c: Adjuntar la política de IAM

Adjunta la política de IAM de AAC_CEFD_SA_Policy a la cuenta de servicio aac_automation_sa creada en la página Configurar la cuenta de AWS y VPC para datos privados.

Paso 2: Configurar la subred

Nota

Si compraste Designer Cloud y EMR, configura las subredes como se menciona en Designer Cloud y EMR sin servidor en AWS. Los recursos EMR y CEfD comparten las subredes de opciones.

Cloud Execution for Desktop en un entorno de procesamiento privado de datos requiere un grupo de subredes. El grupo contiene tres subredes individuales, cada una en una zona de disponibilidad diferente.

  • público (obligatorio): este grupo no ejecuta ningún servicio, pero se utiliza para salir de la VPC.

  • privado (obligatorio): este grupo ejecuta servicios privados para el PDP.

  • grupo de opciones: utiliza este grupo si habilitas Cloud Execution for Desktop dentro de tu entorno de procesamiento de datos. Si habilitas esta opción, se ejecuta un enjambre AMI en esta subred para manejar los trabajos de procesamiento de Designer Desktop que se ejecutan en la nube.

Paso 2a: Crear subredes en la VPC

Configura las subredes en la VPC aac_vpc.

Crea subredes y etiquétalas como se muestra en el siguiente ejemplo. Puedes ajustar los valores de CIDR y de subredes para que se ajusten a tu arquitectura de red.

Los espacios de direcciones grandes están diseñados para adaptarse a un clúster totalmente escalado. Puedes elegir un espacio de direcciones más pequeño si es necesario, pero podrías tener problemas de escalado bajo cargas de procesamiento pesadas.

Importante

Debes etiquetar las subredes con Nombre de la etiqueta y Valor de la etiqueta como se menciona en la tabla.

CIDR

Nombre de la subred

Subred

AZ

Nombre de la etiqueta

Valor de la etiqueta

10.10.0.0/21

opción

10.10.4.0/24

AZa

AACSubnet

opción

opción

10.10.5.0/24

AZb

AACSubnet

opción

opción

10.10.6.0/24

AZc

AACSubnet

opción

Paso 2b: Tablas de ruta de subred

Crea la tabla de rutas para tus subredes.

Nota

Esta tabla de rutas es un ejemplo.

Nombre de la subred

Destino de la ruta

Objetivo

Comentarios

público

/18 Bloque de CIDR

/21 Bloque de CIDR

0.0.0.0/0

local

local

<id. de puerta de enlace>

Configura las mismas rutas en las tres tablas de enrutamiento de subred AZ.

privado

/18 Bloque de CIDR

/21 Bloque de CIDR

<id. del prefijo s3>

0.0.0.0/0

local

local

<id. del punto de conexión de vpce>

<id. de puerta de enlace>

Configura las mismas rutas en las tres tablas de enrutamiento de subred AZ.

0.0.0.0/0 debe estar saliendo a la red pública.

opción

/21 Bloque de CIDR

<id. del prefijo s3>

0.0.0.0/0

Local

<id. del punto de conexión de vpce>

<id. de puerta de enlace>

Configura las mismas rutas en las tres tablas de enrutamiento de subred AZ.

Básicamente, 0.0.0.0/0 debe estar saliendo a la red pública.

Nota

Tu <id> de puerta de enlace puede ser una puerta de enlace NAT zonal creada por AZ o una puerta de enlace de tránsito, según la arquitectura de tu red. Si la puerta de enlace es NAT, crea una puerta de enlace NAT por AZ para las subredes públicas.

Procesamiento de datos privados

Atención

Cambiar o eliminar cualquier recurso de nube pública provisionado por Alteryx One después de configurar el Manejo privado de datos puede causar incoherencias. Estas incoherencias pueden provocar errores durante la ejecución de tareas o al desaprovisionar la configuración de Manejo privado de datos.

Paso 1: Activar la implementación de Cloud Execution

El aprovisionamiento del plano de datos se activa desde la consola de administrador dentro de Alteryx One. Necesitas privilegios de administrador de espacio de trabajo para poder verlo dentro de un espacio de trabajo.

  1. En la página inicial de Alteryx One, selecciona el menú Perfil y, a continuación, selecciona Administrador de espacio de trabajo.

  2. Desde la consola de administración, selecciona Manejo privado de datos y, a continuación, selecciona Procesamiento.

  3. Selecciona la casilla de verificación de Cloud Execution for Desktop y, a continuación, selecciona Update.

Al seleccionar Actualizar, se activa la implementación del clúster y los recursos en la cuenta de AWS. Esto ejecuta un conjunto de comprobaciones de validación para verificar la configuración correcta de la cuenta de AWS.

Nota

El proceso de aprovisionamiento tarda aproximadamente entre 35 y 40 minutos en completarse.

Después de completar el aprovisionamiento, puedes ver los recursos creados (por ejemplo, instancias de EC2 y grupos de nodos) a través de la consola de AWS. Es muy importante que no los modifiques por tu cuenta. Los cambios manuales pueden causar problemas con la función del plano de datos privado.