Accéder au contenu principal Passer au contenu complémentaire

Rôle de gestion

Créez un rôle de gestion pour permettre à Qlik Cloud de configurer des instances et des IP élastiques au sein de votre environnement de lakehouse.

Un rôle de gestion est un rôle IAM que vous créez pour accorder à Qlik les autorisations nécessaires pour pouvoir interagir avec votre environnement AWS en votre nom. Ce rôle est assumé par Qlik lors des opérations de déploiement et d'exécution afin d'accéder en toute sécurité aux ressources AWS nécessaires à votre lakehouse Iceberg et de les gérer.

Le rôle est associé à une politique IAM personnalisée qui définit des actions spécifiques que Qlik est autorisé à effectuer, comme la lecture et l'écriture dans des compartiments S3, la gestion des instances EC2 et l'interaction avec d'autres services comme AWS Glue ou KMS.

Ce rôle garantit un accès sécurisé avec le moins de privilèges possible tout en permettant à Qlik d'automatiser et d'orchestrer des tâches clés telles que la gestion des métadonnées, le déplacement des données et l'exécution des tâches au sein de votre compte AWS.

Pour pouvoir fonctionner correctement, le rôle doit être créé avec la relation de confiance et la politique d'autorisations requises, comme indiqué dans les instructions de configuration.

Conditions préalables requises

Assurez-vous d'avoir créé le VPC, le sous-réseau et les zones de disponibilité pour l'hébergement de votre Qlik Open Lakehouse et de disposer des informations suivantes :

  • Votre ID de compte AWS.

  • L'ARN de clé KMS symétrique.

Création d'un rôle de gestion

Pour créer un rôle de gestion, procédez comme suit :

  1. Dans la Console AWS, accédez à IAM.

  2. Dans Rôles, cliquez sur Créer un rôle et configurez-le :

    • Type d'entité fiable : sélectionnez Politique de confiance personnalisée.

    • Déclaration : dans le volet de code, collez la stratégie d'entité fiable créée dans le Guide de configuration du rôle de gestion dans Qlik Cloud.

  3. Créez le rôle et notez la valeur ARN. Elle doit être formatée comme suit :

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

Création d'une politique

  1. Dans IAM, cliquez sur Rôles et sélectionnez le rôle que vous avez précédemment créé.

  2. Cliquez sur Ajouter des autorisations

  3. Sélectionnez Créer une politique en ligne.

  4. Dans Éditeur de politiques, sélectionnez JSON. Collez le texte suivant, et assurez-vous d'effectuer les opérations suivantes :     

  • Remplacez le paramètre <AWS_ACCOUNT_ID> par votre compte. 

  • Remplacez la valeur <KMS_SYMMETRIC_KEY_ARN> par votre ARN de clé.


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

Justifications des autorisations requises

Le tableau suivant explique chaque autorisation du rôle de gestion :

Politique Autorisations Explication
EC2 - Actions de gestion des ressources

{

"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/*"

]

}

]

}


                                    
Cette politique accorde à Qlik l'autorisation de gérer les instances EC2 et les ressources telles que les volumes, les groupes de sécurité et les sous-réseaux. Aucune condition n'est incluse, car toutes les méthodes sont des actions de description ou de création.
EC2 - Actions de manipulation des ressources

{

"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": "*"

}

]

}


                                    
Cette politique accorde à Qlik l'autorisation de gérer les instances EC2 et les ressources créées par Qlik en fonction de la balise qlik_cluster. Les autorisations comprennent des actions telles que l'association de volumes, la fermeture d'instances et la modification de modèles de lancement.
EC2 - Actions de validation

{

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

"Statement": [

{

"Sid": "VisualEditor0",

"Effect": "Allow",

"Action": [

"ec2:DescribeRegions",

"ec2:DescribeSubnets",

"ec2:DescribeRouteTables",

"ec2:DescribeSecurityGroups",

"ec2:DescribeKeyPairs"

],

"Resource": "*"

}

]

}


                                    
Cette politique accorde à Qlik les autorisations lui permettant de valider les entrées lors de la création d'intégrations réseau. Les actions ne sont pas obligatoires et ne sont requises que lorsque des entrées spécifiques sont fournies.
IAM - Actions liées aux profils des instances

"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": "*"

}

]

}

{

Cette politique permet au rôle de gestion de gérer les profils des instances EC2, y compris des actions telles que la création de rôles liés à des services et la transmission de rôles à des instances EC2.
STS - Action d'autorisation

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

"Statement": [

{

"Action": "sts:DecodeAuthorizationMessage",

"Effect": "Allow",

"Resource": "*"

}

]

}

{

Cette politique accorde à Qlik l'autorisation de décoder les messages d'autorisation pour aider à résoudre les problèmes d'autorisation.
SSM - Actions de gestion des secrets

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

"Statement": [

{

"Action": [

"ssm:PutParameter"

],

"Effect": "Allow",

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

}

]

}

{

Cette politique accorde au rôle de gestion l'autorisation de stocker des secrets dans le magasin de paramètres du Gestionnaire de systèmes AWS. Ces secrets seront lus par les instances provisionnées par Qlik. <AWS_ACCOUNT_ID> est une valeur configurée par l'utilisateur
KMS

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

"Statement": [

{

"Sid": "VisualEditor0",

"Effect": "Allow",

"Action": [

"kms:GenerateDataKeyPairWithoutPlaintext",

"kms:Encrypt"

],

"Resource": "<KMS_SYMMETRIC_KEY_ARN>"

}

]

}

{

Cette politique accorde à Qlik l'autorisation de générer des paires de clés de chiffrement sans accès à la clé privée et de chiffrer des données qui seront lues et déchiffrées par des postes provisionnés par Qlik. <KMS_SYMMETRIC_KEY_ARN> est une valeur configurée par l'utilisateur.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.