Vai al contenuto principale Passa a contenuto complementare

Ruolo di gestione

È possibile creare un ruolo di gestione per consentire a Qlik Cloud di configurare le istanze e gli IP elastici nel proprio ambiente.

Un ruolo di gestione è un ruolo IAM creato dall'utente per concedere a Qlik le autorizzazioni necessarie per interagire con l'ambiente AWS per suo conto. Questo ruolo viene assunto da Qlik durante le operazioni di distribuzione e di esecuzione per accedere e gestire in modo sicuro le risorse AWS necessarie per il lakehouse Iceberg.

Il ruolo è associato a un criterio IAM personalizzato che definisce le azioni specifiche che Qlik è autorizzato a eseguire, come leggere e scrivere su bucket S3, gestire istanze EC2 e interagire con altri servizi come AWS Glue o KMS.

Questo ruolo garantisce un accesso sicuro con privilegi minimi, consentendo a Qlik di automatizzare e orchestrare attività chiave come la gestione dei metadati, lo spostamento dei dati e l'esecuzione di processi all'interno dell'account AWS.

Per funzionare correttamente, il ruolo deve essere creato con la relazione di attendibilità e i criteri di autorizzazione richiesti, come indicato nelle istruzioni di configurazione.

Prerequisiti

Assicurarsi di aver creato il VPC, la sottorete e le zone di disponibilità per l'hosting del Qlik Open Lakehouse e di disporre dei seguenti dettagli:

  • L'ID dell'account AWS dell'utente.

  • L'ARN della chiave KMS simmetrica.

Creazione di un ruolo di gestione

Per creare un ruolo di gestione, fare quanto segue:

  1. Nella Console AWS, andare a IAM.

  2. In Ruoli, fare clic su Crea ruolo e configurarlo:

    • Tipo di entità attendibile, selezionare il Criterio di attendibilità personalizzato.

    • Istruzione: nel riquadro del codice, incollare il criterio dell'Entità attendibile creato nella Guida alla configurazione del ruolo di gestione in Qlik Cloud.

  3. Creare il ruolo e prendere nota del valore ARN. La formattazione deve essere la seguente:

    arn:aws:iam::<ACCOUNT_ID>:role/<ROLE_NAME>.

Creazione di un criterio

  1. Fare clic su IAM, fare clic su Ruoli, quindi selezionare il ruolo creato in precedenza.

  2. Fare clic su Aggiungi autorizzazioni

  3. Selezionare Crea un criterio inline.

  4. In Editor criteri, selezionare JSON. Incollare il seguente testo, quindi assicurarsi di fare quanto segue:     

  • Impostare il parametro <AWS_ACCOUNT_ID> sul proprio account. 

  • Aggiornare il valore <KMS_SYMMETRIC_KEY_ARN> con la chiave ARN.


			{
			"Version": "2012-10-17",
			"Statement": [
			{
			"Effect": "Allow",
			"Resource": [
			"*"
			],
			"Action": [
			"ec2:CancelSpotInstanceRequests",
			"ec2:CreateLaunchTemplate",
			"ec2:CreateTags",
			"ec2:CreateVolume",
			"ec2:DescribeAddresses",
			"ec2:DescribeImageAttribute",
			"ec2:DescribeImages",
			"ec2:DescribeInstanceStatus",
			"ec2:DescribeInstanceTypeOfferings",
			"ec2:DescribeInstanceTypes",
			"ec2:DescribeInstances",
			"ec2:DescribeLaunchTemplateVersions",
			"ec2:DescribeLaunchTemplates",
			"ec2:DescribeSpotInstanceRequests",
			"ec2:DescribeSpotPriceHistory",
			"ec2:DescribeTags",
			"ec2:DescribeRegions",
			"ec2:DescribeSubnets",
			"ec2:DescribeRouteTables",
			"ec2:DescribeSecurityGroups",
			"ec2:RequestSpotInstances",
			"ec2:DescribeVolumes"
			]
			},
			{
			"Effect": "Allow",
			"Resource": [
			"arn:aws:ec2:*::image/*",
			"arn:aws:ec2:*:*:instance/*",
			"arn:aws:ec2:*:*:key-pair/*",
			"arn:aws:ec2:*:*:launch-template/*",
			"arn:aws:ec2:*:*:network-interface/*",
			"arn:aws:ec2:*:*:security-group/*",
			"arn:aws:ec2:*:*:subnet/*",
			"arn:aws:ec2:*:*:volume/*"
			],
			"Action": [
			"ec2:RunInstances"
			]
			},
			{
			"Effect": "Allow",
			"Resource": [
			"*"
			],
			"Action": [
			"ec2:AttachVolume",
			"ec2:DeleteVolume",
			"ec2:DetachVolume",
			"ec2:DeleteLaunchTemplate",
			"ec2:TerminateInstances",
			"ec2:StartInstances",
			"ec2:ModifyLaunchTemplate",
			"ec2:DeleteLaunchTemplateVersions",
			"ec2:CreateLaunchTemplateVersion"
			],
			"Condition": {
			"Null": {
			"aws:ResourceTag/qlik_cluster": "false"
			}
			}
			},
			{
			"Effect": "Allow",
			"Resource": [
			"*"
			],
			"Action": [
			"autoscaling:DeleteAutoScalingGroup",
			"autoscaling:DeletePolicy",
			"autoscaling:DeleteTags",
			"autoscaling:PutScalingPolicy",
			"autoscaling:StartInstanceRefresh",
			"autoscaling:TerminateInstanceInAutoScalingGroup",
			"autoscaling:UpdateAutoScalingGroup"
			],
			"Condition": {
			"Null": {
			"aws:ResourceTag/qlik_cluster": "false"
			}
			}
			},
			{
			"Effect": "Allow",
			"Resource": [
			"*"
			],
			"Action": [
			"autoscaling:CreateAutoScalingGroup",
			"autoscaling:CreateOrUpdateTags",
			"autoscaling:DescribeAutoScalingGroups",
			"autoscaling:DescribeInstanceRefreshes",
			"autoscaling:DescribePolicies",
			"autoscaling:DescribeScalingActivities",
			"autoscaling:DescribeTags"
			]
			},
			{
			"Effect": "Allow",
			"Resource": [
			"*"
			],
			"Action": [
			"ec2:DescribeRegions",
			"ec2:DescribeSubnets",
			"ec2:DescribeRouteTables",
			"ec2:DescribeSecurityGroups",
			"ec2:DescribeKeyPairs"			
			]
			},
			{
			"Effect": "Allow",
			"Resource": [
			"*"
			],
			"Action": [
			"cloudwatch:DescribeAlarmHistory",
			"cloudwatch:DescribeAlarms",
			"cloudwatch:DescribeAlarmsForMetric",
			"cloudwatch:GetMetricStatistics",
			"cloudwatch:ListMetrics",
			"cloudwatch:PutMetricData"
			]
			},
			{
			"Effect": "Allow",
			"Resource": [
			"*"
			],
			"Action": [
			"cloudwatch:DeleteAlarms"
			],
			"Condition": {
			"Null": {
			"aws:ResourceTag/qlik_cluster": "false"
			}
			}
			},
			{
			"Effect": "Allow",
			"Resource": [
			"*"
			],
			"Action": [
			"cloudwatch:PutMetricAlarm"
			],
			"Condition": {
			"Null": {
			"aws:RequestTag/qlik_cluster": "false"
			}
			}
			},
			{
			"Effect": "Allow",
			"Resource": [
			"*"
			],
			"Action": [
			"iam:AddRoleToInstanceProfile",
			"iam:CreateServiceLinkedRole",
			"iam:GetPolicy",
			"iam:GetPolicyVersion",
			"iam:ListAccountAliases",
			"iam:ListAttachedRolePolicies",
			"iam:ListInstanceProfiles",
			"iam:ListInstanceProfilesForRole",
			"iam:ListPolicies",
			"iam:ListRoles",
			"iam:PassRole"
			]
			},
			{
			"Effect": "Allow",
			"Resource": [
			"*"
			],
			"Action": [
			"sts:DecodeAuthorizationMessage"
			]
			},
			{
			"Effect": "Allow",
			"Resource": [
			"arn:aws:ssm:*:<AWS_ACCOUNT_ID>:parameter/qlik/*"
				],
				"Action": [
				"ssm:PutParameter"
				]
				},
				{
				"Effect": "Allow",
				"Resource": [
				"<KMS_SYMMETRIC_KEY_ARN>"
					],
					"Action": [
					"kms:GenerateDataKeyPairWithoutPlaintext",
					"kms:Encrypt"
					]
					}
					]
					}
		

Giustificazioni delle autorizzazioni richieste

La tabella che segue spiega ogni autorizzazione per il ruolo di gestione:

Criterio Autorizzazioni Spiegazione
EC2 - Azioni di gestione delle risorse

{

"Version": "2012-10-17",

"Statement": [

{

"Action": [

"ec2:CancelSpotInstanceRequests",

"ec2:CreateLaunchTemplate",

"ec2:CreateTags",

"ec2:CreateVolume",

"ec2:DescribeAddresses",

"ec2:DescribeImageAttribute",

"ec2:DescribeImages",

"ec2:DescribeInstanceStatus",

"ec2:DescribeInstanceTypeOfferings",

"ec2:DescribeInstanceTypes",

"ec2:DescribeInstances",

"ec2:DescribeLaunchTemplateVersions",

"ec2:DescribeLaunchTemplates",

"ec2:DescribeSpotInstanceRequests",

"ec2:DescribeSpotPriceHistory",

"ec2:DescribeTags",

"ec2:DescribeRegions",

"ec2:DescribeSubnets",

"ec2:DescribeRouteTables",

"ec2:DescribeSecurityGroups",

"ec2:RequestSpotInstances",

"ec2:DescribeVolumes"

],

"Effect": "Allow",

"Resource": "*"

},

{

"Action": "ec2:RunInstances",

"Effect": "Allow",

"Resource": [

"arn:aws:ec2:*:*:subnet/*",

"arn:aws:ec2:*:*:network-interface/*",

"arn:aws:ec2:*::image/*"

]

}

]

}


                                    
Questo criterio concede a Qlik l'autorizzazione di gestire le istanze e le risorse EC2, come volumi, gruppi di sicurezza e sottoreti. Non sono incluse le condizioni, poiché tutti i metodi sono azioni di descrizione o di creazione.
EC2 - Azioni di manipolazione delle risorse

{

"Version": "2012-10-17",

"Statement": [

{

"Action": [

"ec2:AttachVolume",

"ec2:DeleteVolume",

"ec2:DetachVolume",

"ec2:DeleteLaunchTemplate",

"ec2:TerminateInstances",

"ec2:StartInstances",

"ec2:ModifyLaunchTemplate",

"ec2:DeleteLaunchTemplateVersions",

"ec2:CreateLaunchTemplateVersion"

],

"Condition": {

"Null": {

"aws:ResourceTag/qlik_cluster": "false"

}

},

"Effect": "Allow",

"Resource": "*"

},

{

"Action": [

"autoscaling:PutScalingPolicy",

"autoscaling:UpdateAutoScalingGroup",

"autoscaling:DeleteAutoScalingGroup",

"autoscaling:DeletePolicy",

"autoscaling:DeleteTags",

"autoscaling:StartInstanceRefresh"

],

"Condition": {

"Null": {

"aws:ResourceTag/qlik_cluster": "false"

}

},

"Effect": "Allow",

"Resource": "*"

}

]

}


                                    
Questo criterio concede a Qlik l'autorizzazione di gestire le istanze e le risorse EC2 create da Qlik, in base al tag, qlik_cluster. Le autorizzazioni includono azioni come il collegamento di volumi, l'arresto delle istanze e la modifica dei modelli per il lancio.
EC2 - Azioni di convalida

{

"Version": "2012-10-17",

"Statement": [

{

"Sid": "VisualEditor0",

"Effect": "Allow",

"Action": [

"ec2:DescribeRegions",

"ec2:DescribeSubnets",

"ec2:DescribeRouteTables",

"ec2:DescribeSecurityGroups",

"ec2:DescribeKeyPairs"

],

"Resource": "*"

}

]

}


                                    
Questo criterio concede a Qlik le autorizzazioni per convalidare gli input durante la creazione delle integrazioni di rete. Le azioni non sono obbligatorie e sono richieste solo quando vengono forniti input specifici.
IAM - Azioni per il profilo dell'istanza

"Version": "2012-10-17",

"Statement": [

{

"Action": [

"iam:AddRoleToInstanceProfile",

"iam:CreateServiceLinkedRole",

"iam:GetPolicy",

"iam:GetPolicyVersion",

"iam:ListAccountAliases",

"iam:ListAttachedRolePolicies",

"iam:ListInstanceProfiles",

"iam:ListInstanceProfilesForRole",

"iam:ListPolicies",

"iam:ListRoles",

"iam:PassRole"

],

"Effect": "Allow",

"Resource": "*"

}

]

}

{

Questo criterio consente al ruolo di gestione di gestire i profili delle istanze EC2, comprese le azioni come la creazione di ruoli collegati ai servizi e il passaggio dei ruoli alle istanze EC2.
STS - Azione di autorizzazione

"Version": "2012-10-17",

"Statement": [

{

"Action": "sts:DecodeAuthorizationMessage",

"Effect": "Allow",

"Resource": "*"

}

]

}

{

Questo criterio concede a Qlik l'autorizzazione di decodificare i messaggi di autorizzazione per aiutare a risolvere i problemi di autorizzazione.
SSM - Azioni per la gestione segreta

"Version": "2012-10-17",

"Statement": [

{

"Action": [

"ssm:PutParameter"

],

"Effect": "Allow",

"Resource": "arn:aws:ssm:*:<AWS_ACCOUNT_ID>:parameter/qlik/*",

}

]

}

{

Questo criterio concede al ruolo di gestione l'autorizzazione a memorizzare i segreti in AWS Systems Manager Parameter Store. Questi segreti saranno letti dalle istanze fornite da Qlik. <AWS_ACCOUNT_ID> è un valore configurato dall'utente.
KMS

"Version": "2012-10-17",

"Statement": [

{

"Sid": "VisualEditor0",

"Effect": "Allow",

"Action": [

"kms:GenerateDataKeyPairWithoutPlaintext",

"kms:Encrypt"

],

"Resource": "<KMS_SYMMETRIC_KEY_ARN>"

}

]

}

{

Questo criterio concede a Qlik l'autorizzazione a generare coppie di chiavi di crittografia senza accesso alla chiave privata e a crittografare i dati che saranno letti e decifrati da macchine fornite da Qlik. <KMS_SYMMETRIC_KEY_ARN> è un valore configurato dall'utente.

Hai trovato utile questa pagina?

Se riscontri problemi con questa pagina o con il suo contenuto – un errore di battitura, un passaggio mancante o un errore tecnico – ti pregiamo di farcelo sapere!