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...
Configurazione di un VPC dedicato a Alteryx One Platform, come indicato nella sezione Creazione di un VPC.
Creazione di un account di servizio e associazione del ruolo IAM a tale account, come indicato nella sezione Configurazione di IAM.
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.
Nella pagina di destinazione Alteryx One, seleziona il Menu del profilo, quindi seleziona Amministratore spazio di lavoro.
Nella console di amministrazione, seleziona Trattamento dati privato, quindi seleziona Elaborazione.
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.