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

Profil des instances EC2

Définissez un rôle IAM pour vos instances EC2 gérées par Qlik. Ce rôle est utilisé par les instances qui s'exécutent dans votre environnement de lakehouse AWS.

Un profil d'instance EC2 est un conteneur d'un rôle IAM qui peut être affecté à une instance EC2. Il permet à l'instance d'accéder aux services AWS en toute sécurité sans qu'il soit nécessaire de stocker des informations d'identification AWS sur l'instance.

Lorsqu'une instance est lancée avec un profil d'instance, les informations d'identification temporaires du rôle IAM associé sont automatiquement mises à la disposition des applications exécutées sur l'instance via le service de métadonnées de l'instance. Cela permet à l'instance de lancer des requêtes d'API autorisées auprès des services AWS tels qu'Amazon S3, DynamoDB ou CloudWatch.

L'utilisation de profils d'instance améliore la sécurité et simplifie la gestion des informations d'identification en offrant les avantages suivants :

  • Suppression des informations d'identification codées en dur dans le code de l'application ou les fichiers de configuration.

  • Rotation automatique des informations d'identification.

  • Application du principe du moindre privilège via des politiques IAM à grain fin associées au rôle.

Les profils d'instance sont couramment utilisés dans les scénarios dans lesquels des instances EC2 doivent interagir avec d'autres ressources AWS de manière sécurisée et programmatique.

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 :

  • L'URL du compartiment S3 pour que Qlik puisse stocker les fichiers de métadonnées internes.

  • Le nom du flux Kinesis pour que Qlik puisse gérer l'instance dans le cluster.

Création d'un profil d'instance

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 Service AWS parmi les options.

    • Service ou cas d'utilisation : sélectionnez EC2.

    • Cas d'utilisation : sélectionnez EC2.

  3. Créez le rôle. Revenez à la page Rôles et cliquez sur le rôle que vous avez créé.

  4. Cliquez sur l'icône Copier à côté du nom ARN du profil d'instance et enregistrez cette valeur.

  5. Cliquez sur Ajouter des autorisations et sélectionnez Créer une politique en ligne.

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

    • Remplacez le paramètre <INTERNAL_STREAM_NAME> par votre Flux Kinesis.

    • Remplacez le paramètre <INTERNAL_BUCKET_NAME> par votre Compartiment S3.


			{
			"Version": "2012-10-17",
			"Statement": [
			{
			"Effect": "Allow",
			"Resource": [
			"*"
			],
			"Action": [
			"ec2:AttachVolume",
			"ec2:DetachVolume",
			"autoscaling:SetInstanceHealth"
			],
			"Condition": {
			"Null": {
			"aws:ResourceTag/qlik_cluster": "false"
			}
			}
			},
			{
			"Effect": "Allow",
			"Resource": [
			"*"
			],
			"Action": [
			"cloudwatch:PutMetricData"
			]
			},
			{
			"Effect": "Allow",
			"Resource": [
			"arn:aws:kinesis:*:*:stream/<STREAM_NAME>"
				],
				"Action": [
				"kinesis:PutRecord",
				"kinesis:DescribeStreamSummary",
				"kinesis:ListShards",
				"kinesis:PutRecords",
				"kinesis:GetShardIterator",
				"kinesis:GetRecords",
				"kinesis:DescribeStream",
				"kinesis:ListStreamConsumers"
				]
				},
				{
				"Effect": "Allow",
				"Resource": [
				"arn:aws:s3:::<BUCKET_NAME>",
					"arn:aws:s3:::<BUCKET_NAME>/*"
						],
						"Action": [
						"s3:PutObject",
						"s3:GetObject",
						"s3:AbortMultipartUpload",
						"s3:DeleteObjectVersion",
						"s3:ListBucket",
						"s3:DeleteObject",
						"s3:GetObjectVersion"
						]
						},
						{
						"Effect": "Allow",
						"Resource": [
						"arn:aws:ssm:*:*:parameter/qlik/*"
						],
						"Action": [
						"ssm:GetParameter",
						"ssm:PutParameter"
						]
						},
						{
						"Effect": "Allow",
						"Resource": [
						"<SYMMETRIC_KMS_KEY>"
							],
							"Action": [
							"kms:*"
							]
							},
							{
							"Effect": "Allow",
							"Resource": [
							"*"
							],
							"Action": [
							"sts:AssumeRole"
							],
							"Condition": {
							"StringEquals": {
							"sts:ExternalId": "6b69f9c3c8f502f2ddfc8434d443f172ebe4c032f4ef1a3c51215d27a58ca799"
							}
							}
							}
							]
							}
		

Justifications des autorisations requises

Le tableau suivant explique chaque autorisation accordée à l'instance EC2 :

Politique Autorisations Explication
Politique d'association de volume

{

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

"Effect": "Allow",

"Resource": [

"*"

],

"Action": [

"ec2:AttachVolume",

"ec2:DetachVolume",

"autoscaling:SetInstanceHealth"

],

"Condition": {

"Null": {

"aws:ResourceTag/qlik_cluster": "false"

}

}

}

]

}


                                    
Cette politique accorde aux instances EC2 des autorisations leur permettant d'associer des volumes EBS persistants créés par Qlik. Cela permet aux données de persister entre les mises à niveau du poste Passerelle.
CloudWatch

{

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

"Effect": "Allow",

"Resource": [

"*"

],

"Action": [

"cloudwatch:PutMetricData"

}

]

}


                                    

Cette politique permet aux instances EC2 d'envoyer des métriques personnalisées à CloudWatch, qui sont utilisées pour dimensionner automatiquement les clusters Qlik en fonction des performances du logiciel.

Flux interne

{

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

"Effect": "Allow",

"Resource": [

"arn:aws:kinesis:*:*:stream/<STREAM_NAME>"

],

"Action": [

"kinesis:PutRecord",

"kinesis:DescribeStreamSummary",

"kinesis:ListShards",

"kinesis:PutRecords",

"kinesis:GetShardIterator",

"kinesis:GetRecords",

"kinesis:DescribeStream",

"kinesis:ListStreamConsumers"

]

}

]

}


                                    
Cette politique accorde aux instances EC2 l'autorisation d'interagir avec les flux Kinesis utilisés par les services Synchronisation des clusters tels que le Magasin clé-valeur et les Verrouillages distribués. <INTERNAL_STREAM_NAME> est une valeur configurée par l'utilisateur.
Compartiment interne

{

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

"Effect": "Allow",

"Resource": [

"arn:aws:s3:::<BUCKET_NAME>",

"arn:aws:s3:::<BUCKET_NAME>/*"

],

"Action": [

"s3:PutObject",

"s3:GetObject",

"s3:AbortMultipartUpload",

"s3:DeleteObjectVersion",

"s3:ListBucket",

"s3:DeleteObject",

"s3:GetObjectVersion"

]

}

]

}


                                    
Cette politique accorde aux instances EC2 des autorisations leur permettant de stocker, lire et supprimer des données internes. Les données internes contiennent des données utilisateur réelles qui sont conservées dans un stockage intermédiaire en vue de leur traitement. <INTERNAL_BUCKET_NAME> 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.