Rola zarządzania
Utwórz rolę zarządzania, aby umożliwić Qlik Cloud konfigurowanie instancji i elastycznych adresów IP w środowisku lakehouse.
Rola zarządzania to rola IAM, którą tworzysz w celu przyznania Qlik niezbędnych uprawnień do interakcji ze środowiskiem AWS w Twoim imieniu. Ta rola jest przejmowana przez Qlik podczas wdrożenia i operacji wykonawczych w celu bezpiecznego dostępu i zarządzania zasobami AWS wymaganymi dla Twojego lakehouse Iceberg.
Rola jest powiązana z niestandardową zasadą IAM, która definiuje konkretne działania, do których wykonywania Qlik ma upoważnienie – takich jak odczyt i zapis do zasobników S3, zarządzanie instancjami EC2 i interakcja z innymi usługami, takimi jak AWS Glue lub KMS.
Rola ta zapewnia bezpieczny, najmniej uprzywilejowany dostęp, jednocześnie umożliwiając Qlik automatyzację i orkiestrację kluczowych zadań, takich jak zarządzanie metadanymi, przenoszenie danych i wykonywanie zadań na koncie AWS.
Aby działać poprawnie, rola musi zostać utworzona z wymaganą relacją zaufania i zasadami uprawnień, zgodnie z instrukcjami konfiguracji.
Wymagania wstępne
Upewnij się, że utworzono VPC i podsieć oraz Strefy dostępności do hostowania Qlik Open Lakehouse, i przygotuj następujące dane:
-
Identyfikator konta AWS.
-
ARN symetrycznego klucza KMS.
Tworzenie roli zarządzającej
Aby utworzyć rolę zarządzającą, należy wykonać następujące czynności:
-
W konsoli AWS przejdź do IAM
-
W sekcji Role kliknij przycisk Utwórz rolę i skonfiguruj ją:
-
Typ zaufanego podmiotu: wybierz opcję Niestandardowa zasada zaufania.
-
Oświadczenie: w okienku kodu wklej zasadę Podmiotu zaufanego utworzoną w Przewodniku konfiguracji roli w Qlik Cloud.
-
Utwórz rolę i zanotuj wartość ARN. Powinna ona mieć następujący format:
arn:aws:iam::<ACCOUNT_ID>:role/<ROLE_NAME>.
Tworzenie zasady
-
W IAM kliknij Role i wybierz rolę utworzoną powyżej.
-
Kliknij przycisk Dodaj uprawnienia.
-
Wybierz Utwórz zasadę wbudowaną.
-
W Edytorze zasad wybierz JSON. Wklej poniższy tekst i dodatkowo:
-
Zmień parametr <AWS_ACCOUNT_ID> na swoje konto.
-
Zaktualizuj wartość <KMS_SYMMETRIC_KEY_ARN> za pomocą ARN swojego klucza .
{
"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"
]
}
]
}
Uzasadnienie prośby o uprawnienia
Poniższa tabela zawiera objaśnienia poszczególnych uprawnień roli administratora:
| Zasada | Uprawnienia | Objaśnienie |
|---|---|---|
| EC2 – działania związane z zarządzaniem zasobami |
{ "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/*" ] } ] } |
Ta zasada przyznaje Qlik uprawnienie do zarządzania instancjami i zasobami EC2, takimi jak woluminy, grupy zabezpieczeń i podsieci. Nie uwzględnia żadnych warunków, ponieważ wszystkie metody opisują lub tworzą działania. |
| EC2 – działania związane z manipulowaniem zasobami |
{ "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": "*" } ] } |
Ta zasada udziela Qlik uprawnień do zarządzania instancjami EC2 i zasobami utworzonymi przez Qlik na podstawie znacznika qlik_cluster. Uprawnienia obejmują takie działania, jak dołączanie woluminów, zamykanie instancji i modyfikowanie szablonów uruchamiania. |
| EC2 – działania związane z weryfikacją |
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "ec2:DescribeRegions", "ec2:DescribeSubnets", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeKeyPairs" ], "Resource": "*" } ] } |
Ta zasada udziela Qlik uprawnień do sprawdzania poprawności danych wejściowych podczas tworzenia integracji sieciowych. Działania te nie są obowiązkowe i są wymagane tylko w przypadku podania określonych danych wejściowych. |
| IAM – działania profilu instancji | "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": "*" } ] } | Ta zasada umożliwia roli zarządzania obsługę profili instancji EC2, w tym wykonywanie takich działań, jak tworzenie ról powiązanych z usługami i przekazywanie ról do instancji EC2. |
| STS – działanie autoryzacyjne | "Version": "2012-10-17", "Statement": [ { "Action": "sts:DecodeAuthorizationMessage", "Effect": "Allow", "Resource": "*" } ] } | Ta polityka przyznaje Qlik uprawnienia do dekodowania komunikatów autoryzacyjnych, aby pomóc w rozwiązywaniu problemów z autoryzacją. |
| SSM – tajne działania zarządcze | "Version": "2012-10-17", "Statement": [ { "Action": [ "ssm:PutParameter" ], "Effect": "Allow", "Resource": "arn:aws:ssm:*:<AWS_ACCOUNT_ID>:parameter/qlik/*", } ] } | Ta zasada przyznaje roli zarządzania uprawnienia do przechowywania wpisów tajnych w AWS Systems Manager Parameter Store. Te tajne wpisy będą odczytywane przez instancje udostępnione przez Qlik.<AWS_ACCOUNT_ID> to wartość skonfigurowana przez użytkownika |
| KMS | "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "kms:GenerateDataKeyPairWithoutPlaintext", "kms:Encrypt" ], "Resource": "<KMS_SYMMETRIC_KEY_ARN>" } ] } | Ta zasada nadaje Qlik uprawnienia do generowania par kluczy szyfrujących bez dostępu do klucza prywatnego oraz do szyfrowania danych, które będą odczytywane i odszyfrowywane przez maszyny udostępnione przez Qlik. <KMS_SYMMETRIC_KEY_ARN> jest wartością skonfigurowaną przez użytkownika. |