Eine EMR-Studio-Servicerolle erstellen - Amazon EMR

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Eine EMR-Studio-Servicerolle erstellen

Über die EMR-Studio-Servicerolle

Jedes EMR Studio verwendet eine IAM-Rolle mit Berechtigungen, die es dem Studio ermöglichen, mit anderen AWS-Services zu interagieren. Diese Servicerolle muss Berechtigungen beinhalten, die es EMR Studio ermöglichen, einen sicheren Netzwerkkanal zwischen Workspaces und Clustern einzurichten, Notebook-Dateien in Amazon S3 Control zu speichern und auf AWS Secrets Manager zuzugreifen, während ein Workspace mit einem Git-Repository verknüpft wird.

Verwenden Sie die Studio-Servicerolle (anstelle von Sitzungsrichtlinien), um alle Amazon-S3-Zugriffsberechtigungen für das Speichern von Notebookdateien und AWS Secrets Manager Zugriffsberechtigungen zu definieren.

So erstellen Sie eine Servicerolle für EMR Studio auf Amazon EC2 oder Amazon EKS

  1. Folgen Sie den Anweisungen unter Eine Rolle erstellen, um Berechtigungen an einen AWS-Service zu delegieren, um die Servicerolle mithilfe der folgenden Vertrauensrichtlinie zu erstellen.

    Wichtig

    Die folgende Vertrauensrichtlinie umfasst die Schlüssel aws:SourceArn und die aws:SourceAccount globalen Bedingungsschlüssel, um die Berechtigungen zu beschränken, die Sie EMR Studio auf bestimmte Ressourcen in Ihrem Konto gewähren. Auf diese Weise können Sie sich vor dem Problem des verwirrten Stellvertreters schützen.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "elasticmapreduce.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "<account-id>" }, "ArnLike": { "aws:SourceArn": "arn:aws:elasticmapreduce:<region>:<account-id>:*" } } } ] }
  2. Entfernen Sie die standardmäßigen Rollenberechtigungen. Fügen Sie dann die Berechtigungen aus der folgenden Beispiel-IAM-Berechtigungsrichtlinie hinzu. Alternativ können Sie eine benutzerdefinierte Richtlinie erstellen, die das Berechtigungen für EMR-Studio-Servicerollen verwendet.

    Wichtig
    • Damit die tagbasierte Amazon-EC2-Zugriffskontrolle mit EMR Studio funktioniert, müssen Sie den Zugriff für die ModifyNetworkInterfaceAttribute API wie in der folgenden Richtlinie dargestellt einrichten.

    • Damit EMR Studio mit der Servicerolle funktioniert, dürfen Sie die folgenden Anweisungen nicht ändern: AllowAddingEMRTagsDuringDefaultSecurityGroupCreation und AllowAddingTagsDuringEC2ENICreation.

    • Um die Beispielrichtlinie verwenden zu können, müssen Sie die folgenden Ressourcen mit dem Schlüssel "for-use-with-amazon-emr-managed-policies" und dem Wert "true" kennzeichnen.

      • Ihre Amazon Virtual Private Cloud (VPC) für EMR Studio.

      • Jedes Subnetz, das Sie mit dem Studio verwenden möchten.

      • Alle benutzerdefinierten EMR-Studio-Sicherheitsgruppen. Sie müssen alle Sicherheitsgruppen, die Sie während der Vorschauphase von EMR Studio erstellt haben, taggen, wenn Sie sie weiterhin verwenden möchten.

      • Geheimnisse in AWS Secrets Manager, die Studio-Benutzer nutzen, um Git-Repositorys mit einem Workspace zu verknüpfen.

      Sie können Tags auf Ressourcen anwenden, indem Sie die Registerkarte Tags auf dem entsprechenden Ressourcenbildschirm in verwenden. AWS Management Console

    Falls zutreffend, ändern Sie * in der folgenden Richtlinie zu "Resource":"*", um den Amazon-Ressourcennamen (ARN) der Ressource oder Ressourcen anzugeben, für die die Anweisung für Ihre Anwendungsfälle gilt bzw. gelten.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowEMRReadOnlyActions", "Effect": "Allow", "Action": [ "elasticmapreduce:ListInstances", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListSteps" ], "Resource": "*" }, { "Sid": "AllowEC2ENIActionsWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:network-interface/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowEC2ENIAttributeAction", "Effect": "Allow", "Action": [ "ec2:ModifyNetworkInterfaceAttribute" ], "Resource": [ "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*:*:security-group/*" ] }, { "Sid": "AllowEC2SecurityGroupActionsWithEMRTags", "Effect": "Allow", "Action": [ "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "ec2:DeleteNetworkInterfacePermission" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowDefaultEC2SecurityGroupsCreationWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateSecurityGroup" ], "Resource": [ "arn:aws:ec2:*:*:security-group/*" ], "Condition": { "StringEquals": { "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowDefaultEC2SecurityGroupsCreationInVPCWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateSecurityGroup" ], "Resource": [ "arn:aws:ec2:*:*:vpc/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowAddingEMRTagsDuringDefaultSecurityGroupCreation", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:security-group/*", "Condition": { "StringEquals": { "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true", "ec2:CreateAction": "CreateSecurityGroup" } } }, { "Sid": "AllowEC2ENICreationWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:network-interface/*" ], "Condition": { "StringEquals": { "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowEC2ENICreationInSubnetAndSecurityGroupWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowAddingTagsDuringEC2ENICreation", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "ec2:CreateAction": "CreateNetworkInterface" } } }, { "Sid": "AllowEC2ReadOnlyActions", "Effect": "Allow", "Action": [ "ec2:DescribeSecurityGroups", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTags", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs" ], "Resource": "*" }, { "Sid": "AllowSecretsManagerReadOnlyActionsWithEMRTags", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:*:*:secret:*", "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowWorkspaceCollaboration", "Effect": "Allow", "Action": [ "iam:GetUser", "iam:GetRole", "iam:ListUsers", "iam:ListRoles", "sso:GetManagedApplicationInstance", "sso-directory:SearchUsers" ], "Resource": "*" } ] }
  3. Erteilen Sie Ihrer Servicerolle Lese- und Schreibzugriff auf Ihren Amazon-S3-Standort für EMR Studio. Verwenden Sie die folgenden Mindestberechtigungen. Für weitere Informationen finden Sie unter Amazon S3: Gewährt Lese- und Schreibzugriff auf Objekte in einem S3-Bucket programmgesteuert und in der Konsole.

    "s3:PutObject", "s3:GetObject", "s3:GetEncryptionConfiguration", "s3:ListBucket", "s3:DeleteObject"

    Wenn Sie Ihren Amazon-S3-Bucket verschlüsseln, fügen Sie die folgenden Berechtigungen für AWS Key Management Service hinzu.

    "kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:DescribeKey"
  4. Wenn Sie den Zugriff auf Git-Secrets auf Benutzerebene kontrollieren möchten, fügen Sie tagbasierte Berechtigungen in der EMR-Studio-Benutzerrollenrichtlinie zu secretsmanager:GetSecretValue hinzu und entfernen Sie die Berechtigungen für die secretsmanager:GetSecretValue-Richtlinie aus der EMR-Studio-Servicerollenrichtlinie. Weitere Informationen zum Festlegen von differenzierten Benutzerberechtigungen finden Sie unter Berechtigungsrichtlinien für EMR-Studio-Benutzer erstellen.

Minimale Servicerolle für EMR Serverless

Wenn Sie interaktive Workloads mit EMR Serverless über EMR-Studio-Notebooks ausführen möchten, verwenden Sie dieselbe Vertrauensrichtlinie, die Sie für die Einrichtung von EMR Studio im vorherigen Abschnitt So erstellen Sie eine Servicerolle für EMR Studio auf Amazon EC2 oder Amazon EKS verwendet haben.

Für Ihre IAM-Richtlinie verfügt die Mindestrichtlinie über die folgenden Berechtigungen. Aktualisieren Sie bucket-name mit dem Namen des Buckets, den Sie bei der Konfiguration von EMR Studio und Workspace verwenden möchten. EMR Studio verwendet das Bucket-Backup der Workspaces und Notebookdateien in Ihrem Studio.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ObjectActions", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": ["arn:aws:s3:::bucket-name/*"] }, { "Sid": "BucketActions", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetEncryptionConfiguration" ], "Resource": ["arn:aws:s3:::bucket-name"] } ] }

Wenn Sie beabsichtigen, einen verschlüsselten Amazon-S3-Bucket zu verwenden, fügen Sie Ihrer Richtlinie die folgenden Berechtigungen hinzu:

"kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:DescribeKey"

Berechtigungen für EMR-Studio-Servicerollen

In der folgenden Tabelle sind die Operationen aufgeführt, die EMR Studio mithilfe der Servicerolle ausführt, zusammen mit den IAM-Aktionen, die für jeden Vorgang erforderlich sind.

Operation Aktionen
Richten Sie einen sicheren Netzwerkkanal zwischen einem Workspace und einem EMR-Cluster ein und führen Sie die erforderlichen Bereinigungsaktionen durch.
"ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:ModifyNetworkInterfaceAttribute", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DescribeSecurityGroups", "ec2:RevokeSecurityGroupEgress", "ec2:DescribeTags", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elasticmapreduce:ListInstances", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListSteps"
Verwenden Sie die in gespeicherten Git-Anmeldeinformationen AWS Secrets Manager, um Git-Repositorys mit einem Workspace zu verknüpfen.
"secretsmanager:GetSecretValue"
Wenden Sie AWS-Tags auf die Netzwerkschnittstelle und die Standardsicherheitsgruppen an, die EMR Studio bei der Einrichtung des sicheren Netzwerkkanals erstellt. Weitere Informationen finden Sie unter Markieren von AWS-Ressourcen.
"ec2:CreateTags"
Greifen Sie auf Notebook-Dateien und Metadaten zu oder laden Sie sie in Amazon S3 hoch.
"s3:PutObject", "s3:GetObject", "s3:GetEncryptionConfiguration", "s3:ListBucket", "s3:DeleteObject"

Wenn Sie einen verschlüsselten Amazon-S3-Bucket verwenden, schließen Sie die folgenden Berechtigungen ein.

"kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:DescribeKey"
Aktivieren und konfigurieren Sie die Workspace-Zusammenarbeit.
"iam:GetUser", "iam:GetRole", "iam:ListUsers", "iam:ListRoles", "sso:GetManagedApplicationInstance", "sso-directory:SearchUsers"
Verschlüsseln Sie EMR-Studio-Workspace-Notebooks und -Dateien mit vom Kunden verwalteten Schlüsseln (CMK) mit AWS Key Management Service
"kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:DescribeKey"