Перейти к основному содержимому Перейти к дополнительному содержимому

Роль управления

Чтобы Qlik Cloud мог настраивать экземпляры и эластичные IP в среде Lakehouse, необходимо создать роль управления.

Роль управления — это роль IAM, через которую Qlik получает необходимые разрешения на взаимодействие со средой AWS. Эта роль дается Qlik во время развертывания и операций выполнения, и через нее обеспечивается защищенный доступ и управление ресурсами AWS, необходимыми для озер-хранилищ данных на базе Iceberg.

Роль связана с настраиваемой политикой IAM, которая определяет, какие действия разрешены для Qlik — например, чтение из блоков S3 и запись в них, управление экземплярами EC2 и взаимодействие с другими службами, такими как AWS Glue или KMS.

Эта роль обеспечивает защищенный доступ с минимальными привилегиями, позволяя Qlik автоматизировать и организовывать ключевые задачи, такие как управление метаданными, перемещение данных и выполнение заданий, в рамках учетной записи AWS.

Чтобы роль работала правильно, она должна быть создана с необходимыми доверенными отношениями и политикой разрешений, как указано в инструкциях по настройке.

Необходимые условия

Необходимо создать виртуальную частную сеть (VPC) и настроить подсеть и зоны доступности для размещения Открытое озеро данных Qlik. Кроме того, необходимо следующее:

  • Идентификатор учетной записи AWS.

  • Симметричный ключ KMS для ARN

Создание роли управления

Чтобы создать роль управления:

  1. В консоли AWS перейдите в раздел IAM

  2. В разделе Roles (Роли) нажмите Create role (Создать роль) и настройте роль:

    • Trusted entity type (Тип доверенной сущности): выберите Custom trust policy (Настраиваемая политика доверия).

    • Statement: в панели кода вставьте политику Trusted entity (Доверенная сущность), созданную в Руководстве по конфигурации роли в Qlik Cloud.

  3. Создайте роль и запишите значение ARN. Значение должно быть в следующем формате:

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

Создание политики

  1. В разделе IAM нажмите Roles и выберите роль, созданную выше.

  2. Нажмите Add permissions (Добавить разрешения). 

  3. Выберите Create inline policy (Создать внутреннюю политику).

  4. В Policy editor (Редактор политики) выберите JSON. Вставьте следующий текст и проверьте, что:     

  • В поле <AWS_ACCOUNT_ID> укажите свою учетную запись. 

  • В поле <KMS_SYMMETRIC_KEY_ARN> запишите свой ключ 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"
					]
					}
					]
					}
		

Объяснение разрешений

В следующей таблице объясняется каждое разрешение роли управления:

Политика Разрешения Объяснение
EC2 — Resource Management Actions (Действия по управлению ресурсами)

{

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

]

}

]

}


                                    
Эта политика предоставляет Qlik разрешение на управление экземплярами EC2 и ресурсами, такими как тома, группы безопасности и подсети. Условия не включены, так как все методы либо описывают, либо создают действия.
EC2 — Resource Manipulation Actions (Действия по организации ресурсов)

{

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

}

]

}


                                    
Эта политика дает Qlik разрешение на управление экземплярами EC2 и ресурсами, созданными Qlik, на основе тега qlik_cluster. Разрешения включают такие действия, как присоединение томов, остановка работы экземпляров и изменение шаблонов запуска.
EC2 — Validation Actions (Действия по валидации)

{

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

"Statement": [

{

"Sid": "VisualEditor0",

"Effect": "Allow",

"Action": [

"ec2:DescribeRegions",

"ec2:DescribeSubnets",

"ec2:DescribeRouteTables",

"ec2:DescribeSecurityGroups",

"ec2:DescribeKeyPairs"

],

"Resource": "*"

}

]

}


                                    
Эта политика предоставляет Qlik разрешения на проверку входных параметров при создании сетевых интеграций. Эти действия не являются обязательными и требуются только при наличии определенных входных параметров.
IAM — Instance Profile Actions (Действия с профилем экземпляра)

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

}

]

}

{

Эта политика позволяет роли управления работать с профилями экземпляров EC2, включая такие действия, как создание ролей, связанных с сервисами, и передача ролей экземплярам EC2.
STS — Authorization Action (Авторизация)

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

"Statement": [

{

"Action": "sts:DecodeAuthorizationMessage",

"Effect": "Allow",

"Resource": "*"

}

]

}

{

Эта политика предоставляет Qlik разрешение на декодирование сообщений авторизации, необходимое для устранения проблем с авторизацией.
SSM — Secret Management Actions (Действия по управлению с секретами)

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

"Statement": [

{

"Action": [

"ssm:PutParameter"

],

"Effect": "Allow",

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

}

]

}

{

Эта политика дает роли управления разрешение на хранение секретов и паролей в хранилище параметров AWS Systems Manager. Эти секреты будут считываться экземплярами, запускаемыми Qlik. <AWS_ACCOUNT_ID> — это значение, вводимое пользователем.
KMS

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

"Statement": [

{

"Sid": "VisualEditor0",

"Effect": "Allow",

"Action": [

"kms:GenerateDataKeyPairWithoutPlaintext",

"kms:Encrypt"

],

"Resource": "<KMS_SYMMETRIC_KEY_ARN>"

}

]

}

{

Эта политика предоставляет Qlik разрешение на генерацию пары ключей шифрования без доступа к закрытому ключу, а также разрешение на шифрование данных, которые будут читаться и расшифровываться машинами, предоставленными Qlik. <KMS_SYMMETRIC_KEY_ARN>— это значение, вводимое пользователем.

Помогла ли вам эта страница?

Если вы обнаружили какую-либо проблему на этой странице или с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом!