Skip to main content

Cloud Execution for Desktop in AWS

Questa guida spiega come implementare il modulo Cloud Execution for Desktop per l'elaborazione privata dei dati in AWS.

Prerequisito

Prima di implementare il modulo Cloud Execution for Desktop, è necessario completare la procedura che segue nella pagina Configurazione dell'account AWS e di VPC per i dati privati...

  1. Configurazione di un VPC dedicato a Alteryx One Platform, come indicato nella sezione Creazione di un VPC.

  2. Creazione di un account di servizio e associazione del ruolo IAM a tale account, come indicato nella sezione Configurazione di IAM.

  3. Attivazione corretta del provisioning dell'elaborazione dati privata, come indicato nella sezione Attivazione del provisioning dell'elaborazione dati privata.

Configurazione dell'account

Passaggio 1: configurazione del modulo IAM

Passaggio 1a: creazione del criterio IAM per Cloud Execution

Nota

Il nome del criterio AAC_CEFD_SA_Policy è solo un esempio. È possibile scegliere qualsiasi nome per il criterio, purché cominci con AAC_CEFD.

È necessario creare una policy IAM personalizzata, assegnare il nome AAC_CEFD_SA_Policy e usare il documento di criteri seguente. È consigliabile utilizzare la scheda JSON al posto dell'editor visivo. Per l'esecuzione di Alteryx One sono necessarie alcune autorizzazioni *. Durante la creazione della policy verranno probabilmente visualizzati alcuni avvisi di sicurezza. Ricorda che il documento di criteri IAM supporta la creazione dei ruoli e include un criterio inline che consente alla funzione Lambda di assumere i ruoli assegnati.

{
    "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:*"
        }
    ]
}

Passaggio 1b: aggiunta di un tag al criterio IAM.

Aggiungi un tag al criterio IAM personalizzato creato nel Passaggio 1a.

Nome tag

Valore

AACResource

aac_sa_custom_policy

Passaggio 1c: associazione del criterio IAM

Associa il criterio IAM AAC_CEFD_SA_Policy all'account di servizio aac_automation_sa creato nella pagina Configurazione dell'account AWS e di VPC per i dati privati.

Passaggio 2: configurazione della sottorete

Nota

Se hai acquistato Designer Cloud ed EMR, configura le sottoreti come indicato in Designer Cloud and EMR Serverless in AWS. Le risorse di EMR e CEfD condividono le sottoreti di tipo option.

Negli ambienti di elaborazione privata dei dati, Cloud Execution for Desktoprichiede 1 gruppo di sottoreti contenente 3 sottoreti distinte, ciascuna con una zona di disponibilità diversa.

  • public (obbligatorio): questo gruppo non esegue alcun servizio, ma viene utilizzato per uscire dal VPC.

  • private (obbligatorio): questo gruppo esegue i servizi privati del sistema PDP.

  • option: usa questo gruppo se abiliti Cloud Execution for Desktop all'interno del tuo ambiente di elaborazione privata dei dati. Se abiliti questa opzione, in questa sottorete viene eseguito uno swarm AMI per gestire i processi di elaborazione Designer Desktop eseguiti nel cloud.

Passaggio 2a: creazione di sottoreti nel VPC

Devi configurare le sottoreti nel VPC aac_vpc.

Crea le sottoreti e assegna loro i tag come indicato nell'esempio che segue. Puoi modificare i valori di CIDR e sottoreti in base all'architettura della rete in uso.

Gli spazi degli indirizzi molto grandi sono progettati in modo da consentire la gestione di un cluster completamente espanso. Se necessario, puoi scegliere uno spazio di indirizzi più piccolo, ma con i carichi di elaborazione più pesanti rischi di incontrare problemi di scalabilità.

Importante

Devi assegnare alle sottoreti i valori di Nome tag e Valore tag indicati nella tabella.

CIDR

Nome sottorete

Sottorete

Zona disponibilità

Nome tag

Valore tag

10.10.0.0/21

opzione

10.10.4.0/24

AZa

AACSubnet

opzione

opzione

10.10.5.0/24

AZb

AACSubnet

opzione

opzione

10.10.6.0/24

AZc

AACSubnet

opzione

Passaggio 2b: tabelle di routing delle sottoreti

È necessario creare una tabella di routing per le sottoreti.

Nota

Questa tabella di routing è solo un esempio.

Nome sottorete

Destinazione route

Target

Commenti

public

Blocco CIDR /18

Blocco CIDR /21

0.0.0.0/0

local

local

<gateway id>

Configura le stesse route nella tabelle di routing delle zone di disponibilità di tutte e 3 le reti.

private

Blocco CIDR /18

Blocco CIDR /21

<s3 prefix id>

0.0.0.0/0

local

local

<vpce endpoint id>

<gateway id>

Configura le stesse route nella tabelle di routing delle zone di disponibilità di tutte e 3 le reti.

0.0.0.0/0 deve essere in uscita dalla rete pubblica.

opzione

Blocco CIDR /21

<s3 prefix id>

0.0.0.0/0

Locale

<vpce endpoint id>

<gateway id>

Configura le stesse route nella tabelle di routing delle zone di disponibilità di tutte e 3 le reti.

Sostanzialmente, 0.0.0.0/0 deve essere in uscita dalla rete pubblica.

Nota

Il valore <gateway id> può indicare un gateway NAT creato a livello di zona di disponibilità o un gateway di transito, a seconda dell'architettura della rete in uso. Nel caso di un gateway NAT, devi creare un gateway NAT per ogni zona di disponibilità delle sottoreti pubbliche.

Elaborazione dei dati privati

Attenzione

La modifica o la rimozione di qualsiasi risorsa del cloud pubblico fornita da Alteryx One dopo la configurazione della gestione dei dati privati, può causare incongruenze. Tali incongruenze possono causare errori durante l'esecuzione del processo o il deprovisioning della configurazione di gestione dei dati privati.

Passaggio 1: deployment del trigger Cloud Execution

Il provisioning del piano dati viene attivato dalla console di amministrazione all'interno di Alteryx One. Per vederlo, devi avere i privilegi di amministrazione dello spazio di lavoro in questione.

  1. Nella pagina di destinazione Alteryx One, seleziona il Menu del profilo, quindi seleziona Amministratore spazio di lavoro.

  2. Nella console di amministrazione, seleziona Trattamento dati privato, quindi seleziona Elaborazione.

  3. Seleziona la casella di spunta Cloud Execution for Desktop, quindi seleziona Aggiorna.

Quando selezioni Aggiorna, viene avviata l'implementazione del cluster e delle risorse nell'account AWS. Viene eseguita una serie di controlli di convalida per verificare che la configurazione dell'account AWS sia corretta.

Nota

Il processo di provisioning richiede circa 35-40 minuti.

Al termine del provisioning, puoi visualizzare le risorse create (ad esempio le istanze EC2 e i gruppi di nodi) tramite la console AWS. Evita di modificarle personalmente, perché le modifiche manuali possono causare problemi con il funzionamento del piano dati privato.