Erstellen Sie eine EMR Studio-Dienstrolle - 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.

Erstellen Sie eine EMR Studio-Dienstrolle

Über die EMR Studio-Servicerolle

Jedes EMR Studio verwendet eine IAM Rolle mit Berechtigungen, die es dem Studio ermöglichen, mit anderen AWS Diensten zu interagieren. Diese Servicerolle muss Berechtigungen beinhalten, die es EMR Studio ermöglichen, einen sicheren Netzwerkkanal zwischen Workspaces und Clustern einzurichten, Notebook-Dateien darin zu speichern und darauf zuzugreifen Amazon S3 Control, AWS Secrets Manager 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 bei Amazon EC2 oder Amazon EKS

  1. Folgen Sie den Anweisungen unter Erstellen einer Rolle zum Delegieren von Berechtigungen für einen AWS Dienst, um die Dienstrolle mit der folgenden Vertrauensrichtlinie zu erstellen.

    Wichtig

    Die folgende Vertrauensrichtlinie umfasst die aws:SourceArnund aws:SourceAccountglobale Bedingungsschlüssel, mit denen Sie die Berechtigungen einschränken können, 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 IAM Beispielberechtigungsrichtlinie hinzu. Alternativ können Sie eine benutzerdefinierte Richtlinie erstellen, die das EMRBerechtigungen für die Studio-Dienstrolle verwendet.

    Wichtig
    • Damit die EC2 Tag-basierte Zugriffskontrolle von Amazon mit EMR Studio funktioniert, müssen Sie den Zugriff ModifyNetworkInterfaceAttribute API wie in der folgenden Richtlinie gezeigt einrichten.

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

    • 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 EMR Studio-Vorschauphase erstellt haben, taggen, wenn Sie sie weiterhin verwenden möchten.

      • Geheimnisse AWS Secrets Manager , die in Studio-Benutzern verwaltet werden, 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 die Angabe * "Resource":"*" in der folgenden Richtlinie, um den Amazon-Ressourcennamen (ARN) der Ressourcen anzugeben, auf die sich die Erklärung für Ihren Anwendungsfall bezieht.

    { "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 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 der EMR Studio-Benutzerrollenrichtlinie tagbasierte Berechtigungen hinzu und entfernen Sie die Richtlinienberechtigungen aus der EMR Studio-Dienstrollenrichtlinie. secretsmanager:GetSecretValue secretsmanager:GetSecretValue Weitere Informationen zum Festlegen von differenzierten Benutzerberechtigungen finden Sie unter Erstellen Sie Berechtigungsrichtlinien für EMR Studio-Benutzer.

Minimale Servicerolle für Serverless EMR

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 verwendet haben. So erstellen Sie eine Servicerolle für EMR Studio bei Amazon EC2 oder Amazon EKS

Für Ihre IAM Richtlinie verfügt die Mindestrichtlinie über die folgenden Berechtigungen. Geben Sie bucket-name bei der Konfiguration von EMR Studio und Workspace den Namen des Buckets an, den Sie verwenden möchten. EMRStudio verwendet den Bucket, um die Workspaces und Notizbuchdateien in Ihrem Studio zu sichern.

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

EMRBerechtigungen für die Studio-Dienstrolle

In der folgenden Tabelle sind die Operationen aufgeführt, die EMR Studio mithilfe der Servicerolle ausführt, sowie die für jeden Vorgang erforderlichen IAM Aktionen.

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-Notizbücher und -Dateien mithilfe von vom Kunden verwalteten Schlüsseln (CMK) mit AWS Key Management Service
"kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:DescribeKey"