EMRStudio-Benutzerberechtigungen für Amazon EC2 oder Amazon konfigurieren EKS - 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.

EMRStudio-Benutzerberechtigungen für Amazon EC2 oder Amazon konfigurieren EKS

Sie müssen Benutzerberechtigungsrichtlinien für Amazon EMR Studio konfigurieren, damit Sie detaillierte Benutzer- und Gruppenberechtigungen festlegen können. Informationen zur Funktionsweise von Benutzerberechtigungen in EMR Studio finden Sie unterZugriffskontrolle. Wie Amazon EMR Studio funktioniert

Anmerkung

Die in diesem Abschnitt behandelten Berechtigungen erzwingen keine Datenzugriffskontrolle. Um den Zugriff auf Eingabe-Datensätze zu verwalten, sollten Sie Berechtigungen für die Cluster konfigurieren, die Ihr Studio verwendet. Weitere Informationen finden Sie unter Sicherheit bei Amazon EMR.

Erstellen Sie eine EMR Studio-Benutzerrolle für den IAM Identity Center-Authentifizierungsmodus

Sie müssen eine EMR Studio-Benutzerrolle erstellen, wenn Sie den IAM Identity Center-Authentifizierungsmodus verwenden.

Um eine Benutzerrolle für EMR Studio zu erstellen
  1. Folgen Sie den Anweisungen unter Erstellen einer Rolle zum Delegieren von Berechtigungen für einen AWS Dienst im Benutzerhandbuch, um eine AWS Identity and Access Management Benutzerrolle zu erstellen.

    Verwenden Sie beim Erstellen der Rolle die folgende Vertrauensbeziehungsrichtlinie.

    { "Version": "2008-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "elasticmapreduce.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetContext" ] } ] }
  2. Entfernen Sie die standardmäßigen Rollenberechtigungen und -richtlinien.

  3. Bevor Sie einem Studio Benutzer und Gruppen zuweisen, fügen Sie der Benutzerrolle Ihre EMR Studio-Sitzungsrichtlinien hinzu. Anweisungen zum Erstellen von Sitzungsrichtlinien finden Sie unter Erstellen Sie Berechtigungsrichtlinien für EMR Studio-Benutzer.

Erstellen Sie Berechtigungsrichtlinien für EMR Studio-Benutzer

In den folgenden Abschnitten finden Sie Informationen zum Erstellen von Berechtigungsrichtlinien für EMR Studio.

Anmerkung

Verwenden Sie die EMR Studio-Servicerolle, um Amazon S3 S3-Zugriffsberechtigungen für das Speichern von Notizbuchdateien und AWS Secrets Manager Zugriffsberechtigungen für das Lesen von Geheimnissen festzulegen, wenn Sie Workspaces mit Git-Repositorys verknüpfen.

Die Berechtigungsrichtlinien erstellen

Erstellen Sie eine oder mehrere IAM Berechtigungsrichtlinien, die festlegen, welche Aktionen ein Benutzer in Ihrem Studio ausführen kann. Mit den Beispielrichtlinien auf dieser Seite können Sie beispielsweise drei separate Richtlinien für einfache, fortgeschrittene und erfahrene Studio-Benutzer erstellen.

Eine Aufschlüsselung der einzelnen Studio-Operationen, die ein Benutzer ausführen kann, sowie der IAM Mindestaktionen, die für die einzelnen Operationen erforderlich sind, finden Sie unterAWS Identity and Access Management Berechtigungen für EMR Studio-Benutzer. Die Schritte zum Erstellen der Richtlinien finden Sie unter IAMRichtlinien erstellen im IAMBenutzerhandbuch.

Ihre Berechtigungsrichtlinie muss die folgenden Aussagen enthalten.

{ "Sid": "AllowAddingTagsOnSecretsWithEMRStudioPrefix", "Effect": "Allow", "Action": "secretsmanager:TagResource", "Resource": "arn:aws:secretsmanager:*:*:secret:emr-studio-*" }, { "Sid": "AllowPassingServiceRoleForWorkspaceCreation", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::*:role/your-emr-studio-service-role" ], "Effect": "Allow" }

Legen Sie die Eigentümerschaft für die Workspace-Zusammenarbeit fest

Mithilfe von Workspace Collaboration können mehrere Benutzer gleichzeitig im selben Workspace arbeiten. Sie kann über das Collaboration-Bedienfeld in der Workspace-Benutzeroberfläche konfiguriert werden. Um das Collaboration Panel sehen und verwenden zu können, muss ein Benutzer über die folgenden Berechtigungen verfügen. Jeder Benutzer mit diesen Berechtigungen kann das Panel Zusammenarbeit sehen und verwenden.

"elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities"

Um den Zugriff auf das Panel Zusammenarbeit einzuschränken, können Sie die tagbasierte Zugriffskontrolle verwenden. Wenn ein Benutzer einen Workspace erstellt, wendet EMR Studio ein Standard-Tag mit einem Schlüssel ancreatorUserId, dessen Wert der ID des Benutzers entspricht, der den Workspace erstellt.

Anmerkung

EMRStudio fügt das creatorUserId Tag zu Arbeitsbereichen hinzu, die nach dem 16. November 2021 erstellt wurden. Um einzuschränken, wer die Zusammenarbeit für vor dem Datum erstellte Workspaces konfigurieren kann, empfehlen wir, das creatorUserId-Tag manuell zu Ihrem Workspace hinzuzufügen und dann die tagbasierte Zugriffskontrolle in Ihren Benutzerberechtigungsrichtlinien zu verwenden.

Die folgende Beispielanweisung ermöglicht es einem Benutzer, die Zusammenarbeit für jeden Workspace mit dem Tag-Schlüssel creatorUserId zu konfigurieren, dessen Wert der Benutzer-ID entspricht (angegeben durch die Richtlinienvariable aws:userId). Mit anderen Worten, die Anweisung ermöglicht es einem Benutzer, die Zusammenarbeit für die von ihm erstellten Workspaces zu konfigurieren. Weitere Informationen zu Richtlinienvariablen finden Sie im IAMBenutzerhandbuch unter IAMRichtlinienelemente: Variablen und Tags.

{ "Sid": "UserRolePermissionsForCollaboration", "Action": [ "elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities" ], "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/creatorUserId": "${aws:userid}" } } }

Git-Secrets-Richtlinie auf Benutzerebene erstellen

So verwenden Sie Berechtigungen auf Benutzerebene

EMRStudio fügt das for-use-with-amazon-emr-managed-user-policies Tag automatisch hinzu, wenn es Git-Secrets erstellt. Wenn Sie den Zugriff auf Git-Secrets auf Benutzerebene kontrollieren möchten, fügen Sie der EMR Studio-Benutzerrollenrichtlinie tagbasierte Berechtigungen hinzu, secretsmanager:GetSecretValue wie im folgenden So gehen Sie von Berechtigungen auf Serviceebene zu Berechtigungen auf Benutzerebene über Abschnitt gezeigt.

Wenn Sie secretsmanager:GetSecretValue in der EMR Studio-Dienstrollenrichtlinie bereits über Berechtigungen verfügen, sollten Sie diese Berechtigungen entfernen.

So gehen Sie von Berechtigungen auf Serviceebene zu Berechtigungen auf Benutzerebene über

Anmerkung

Das for-use-with-amazon-emr-managed-user-policies-Tag stellt sicher, dass die Berechtigungen aus Schritt 1 unten dem Ersteller des Workspace Zugriff auf das Git-Secret gewähren. Wenn Sie Git-Repositorys jedoch vor dem 1. September 2023 verlinkt haben, wird den entsprechenden Git-Secrets der Zugriff verweigert, da das for-use-with-amazon-emr-managed-user-policies-Tag nicht auf sie angewendet wurde. Um Berechtigungen auf Benutzerebene anzuwenden, müssen Sie die alten Geheimnisse aus den entsprechenden Git-Repositorys neu erstellen JupyterLab und die entsprechenden Git-Repositorys erneut verknüpfen.

Weitere Informationen zu Richtlinienvariablen finden Sie unter IAMRichtlinienelemente: Variablen und Tags im IAM Benutzerhandbuch.

  1. Fügen Sie der EMRStudio-Benutzerrollenrichtlinie die folgenden Berechtigungen hinzu. Sie verwendet den for-use-with-amazon-emr-managed-user-policies-Schlüssel mit dem Wert "${aws:userid}".

    { "Sid": "AllowSecretsManagerReadOnlyActionsWithEMRTags", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:*:*:secret:*", "Condition": { "StringEquals": { "secretsmanager:ResourceTag/for-use-with-amazon-emr-managed-user-policies": "${aws:userid}" } } }
  2. Falls vorhanden, entfernen Sie die folgende Berechtigung aus der EMRStudio-Dienstrollenrichtlinie. Da die Servicerollenrichtlinie für alle von jedem Benutzer definierten Secrets gilt, müssen Sie dies nur einmal tun.

    { "Sid": "AllowSecretsManagerReadOnlyActionsWithEMRTags", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:*:*:secret:*", "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }

Berechtigungen auf Serviceebene

Ab dem 1. September 2023 fügt EMR Studio automatisch das for-use-with-amazon-emr-managed-user-policies Tag für die Zugriffskontrolle auf Benutzerebene hinzu. Da es sich um eine zusätzliche Funktion handelt, können Sie weiterhin den Zugriff auf Dienstebene verwenden, der über die GetSecretValue Berechtigung in der EMRStudio-Servicerolle verfügbar ist.

Für Geheimnisse, die vor dem 1. September 2023 erstellt wurden, hat EMR Studio das for-use-with-amazon-emr-managed-user-policies Tag nicht hinzugefügt. Um weiterhin Berechtigungen auf Dienstebene zu verwenden, behalten Sie einfach Ihre bestehenden EMRStudio-Dienstrollen- und Benutzerrollenberechtigungen bei. Um jedoch einzuschränken, wer auf ein einzelnes Secret zugreifen kann, empfehlen wir, dass Sie die Schritte unter So verwenden Sie Berechtigungen auf Benutzerebene zum Hinzufügen des for-use-with-amazon-emr-managed-user-policies-Tags zu Ihren Secrets befolgen und dann die tagbasierte Zugriffskontrolle in Ihren Benutzerberechtigungsrichtlinien verwenden.

Weitere Informationen zu Richtlinienvariablen finden Sie im IAMBenutzerhandbuch unter IAMRichtlinienelemente: Variablen und Tags.

Ordnen Sie die Berechtigungsrichtlinie Ihrer IAM Identität zu

In der folgenden Tabelle wird zusammengefasst, an welche IAM Identität Sie je nach EMR Studio-Authentifizierungsmodus eine Berechtigungsrichtlinie anhängen. Anweisungen zum Anhängen einer Richtlinie finden Sie unter Hinzufügen und Entfernen von IAM Identitätsberechtigungen.

Wenn Sie … Fügen Sie die Richtlinie an …
IAMAuthentifizierung Ihre IAM Identitäten (Benutzer, Benutzergruppen oder Rollen). Sie können einem Benutzer in Ihrem AWS-Konto eine Berechtigungsrichtlinie zuweisen.
IAMVerbund mit einem externen Identitätsanbieter (IdP)

Die IAM Rolle oder Rollen, die Sie für Ihren externen IdP erstellen. Zum Beispiel ein IAM For SAML 2.0-Föderation.

EMRStudio verwendet die Berechtigungen, die Sie Ihren IAM Rollen zuordnen, für Benutzer mit Verbundzugriff auf ein Studio.

IAMIdentity Center Ihre Amazon EMR Studio-Benutzerrolle.

Beispielbenutzerrichtlinien

Die folgende grundlegende Benutzerrichtlinie erlaubt die meisten EMR Studio-Aktionen, erlaubt es einem Benutzer jedoch nicht, neue EMR Amazon-Cluster zu erstellen.

Wichtig

Die Beispielrichtlinie beinhaltet nicht die CreateStudioPresignedUrl Erlaubnis, die Sie einem Benutzer gewähren müssen, wenn Sie den IAM Authentifizierungsmodus verwenden. Weitere Informationen finden Sie unter Weisen Sie einem EMR Studio einen Benutzer oder eine Gruppe zu.

Die Beispielrichtlinie enthält Condition Elemente zur Durchsetzung einer tagbasierten Zugriffskontrolle (TBAC), sodass Sie die Richtlinie zusammen mit der Beispieldienstrolle für EMR Studio verwenden können. Weitere Informationen finden Sie unter Erstellen Sie eine EMR Studio-Dienstrolle.

{ "Version":"2012-10-17", "Statement":[ { "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":"AllowSecretManagerListSecrets", "Action":[ "secretsmanager:ListSecrets" ], "Resource":"*", "Effect":"Allow" }, { "Sid":"AllowSecretCreationWithEMRTagsAndEMRStudioPrefix", "Effect":"Allow", "Action":"secretsmanager:CreateSecret", "Resource":"arn:aws:secretsmanager:*:*:secret:emr-studio-*", "Condition":{ "StringEquals":{ "aws:RequestTag/for-use-with-amazon-emr-managed-policies":"true" } } }, { "Sid":"AllowAddingTagsOnSecretsWithEMRStudioPrefix", "Effect":"Allow", "Action":"secretsmanager:TagResource", "Resource":"arn:aws:secretsmanager:*:*:secret:emr-studio-*" }, { "Sid":"AllowPassingServiceRoleForWorkspaceCreation", "Action":"iam:PassRole", "Resource":[ "arn:aws:iam::*:role/<your-emr-studio-service-role>" ], "Effect":"Allow" }, { "Sid":"AllowS3ListAndLocationPermissions", "Action":[ "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation" ], "Resource":"arn:aws:s3:::*", "Effect":"Allow" }, { "Sid":"AllowS3ReadOnlyAccessToLogs", "Action":[ "s3:GetObject" ], "Resource":[ "arn:aws:s3:::aws-logs-<aws-account-id>-<region>/elasticmapreduce/*" ], "Effect":"Allow" }, { "Sid":"AllowConfigurationForWorkspaceCollaboration", "Action":[ "elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities" ], "Resource":"*", "Effect":"Allow", "Condition":{ "StringEquals":{ "elasticmapreduce:ResourceTag/creatorUserId":"${aws:userId}" } } }, { "Sid":"DescribeNetwork", "Effect":"Allow", "Action":[ "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource":"*" }, { "Sid":"ListIAMRoles", "Effect":"Allow", "Action":[ "iam:ListRoles" ], "Resource":"*" } ] }

Die folgende Richtlinie für Zwischenbenutzer erlaubt die meisten EMR Studio-Aktionen und ermöglicht es einem Benutzer, mithilfe einer Cluster-Vorlage neue EMR Amazon-Cluster zu erstellen.

Wichtig

Die Beispielrichtlinie beinhaltet nicht die CreateStudioPresignedUrl Berechtigung, die Sie einem Benutzer gewähren müssen, wenn Sie den IAM Authentifizierungsmodus verwenden. Weitere Informationen finden Sie unter Weisen Sie einem EMR Studio einen Benutzer oder eine Gruppe zu.

Die Beispielrichtlinie enthält Condition Elemente zur Durchsetzung einer tagbasierten Zugriffskontrolle (TBAC), sodass Sie die Richtlinie zusammen mit der Beispieldienstrolle für EMR Studio verwenden können. Weitere Informationen finden Sie unter Erstellen Sie eine EMR Studio-Dienstrolle.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowEMRBasicActions", "Action":[ "elasticmapreduce:CreateEditor", "elasticmapreduce:DescribeEditor", "elasticmapreduce:ListEditors", "elasticmapreduce:StartEditor", "elasticmapreduce:StopEditor", "elasticmapreduce:DeleteEditor", "elasticmapreduce:OpenEditorInConsole", "elasticmapreduce:AttachEditor", "elasticmapreduce:DetachEditor", "elasticmapreduce:CreateRepository", "elasticmapreduce:DescribeRepository", "elasticmapreduce:DeleteRepository", "elasticmapreduce:ListRepositories", "elasticmapreduce:LinkRepository", "elasticmapreduce:UnlinkRepository", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:ListBootstrapActions", "elasticmapreduce:ListClusters", "elasticmapreduce:ListSteps", "elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "elasticmapreduce:GetOnClusterAppUIPresignedURL" ], "Resource":"*", "Effect":"Allow" }, { "Sid":"AllowEMRContainersBasicActions", "Action":[ "emr-containers:DescribeVirtualCluster", "emr-containers:ListVirtualClusters", "emr-containers:DescribeManagedEndpoint", "emr-containers:ListManagedEndpoints", "emr-containers:DescribeJobRun", "emr-containers:ListJobRuns" ], "Resource":"*", "Effect":"Allow" }, { "Sid": "AllowRetrievingManagedEndpointCredentials", "Effect": "Allow", "Action": [ "emr-containers:GetManagedEndpointSessionCredentials" ], "Resource": [ "arn:aws:emr-containers:<region>:<account-id>:/virtualclusters/<virtual-cluster-id>/endpoints/<managed-endpoint-id>" ], "Condition": { "StringEquals": { "emr-containers:ExecutionRoleArn": [ "arn:aws:iam::<account-id>:role/<emr-on-eks-execution-role>" ] } } }, { "Sid":"AllowSecretManagerListSecrets", "Action":[ "secretsmanager:ListSecrets" ], "Resource":"*", "Effect":"Allow" }, { "Sid":"AllowSecretCreationWithEMRTagsAndEMRStudioPrefix", "Effect":"Allow", "Action":"secretsmanager:CreateSecret", "Resource":"arn:aws:secretsmanager:*:*:secret:emr-studio-*", "Condition":{ "StringEquals":{ "aws:RequestTag/for-use-with-amazon-emr-managed-policies":"true" } } }, { "Sid":"AllowAddingTagsOnSecretsWithEMRStudioPrefix", "Effect":"Allow", "Action":"secretsmanager:TagResource", "Resource":"arn:aws:secretsmanager:*:*:secret:emr-studio-*" }, { "Sid":"AllowClusterTemplateRelatedIntermediateActions", "Action":[ "servicecatalog:DescribeProduct", "servicecatalog:DescribeProductView", "servicecatalog:DescribeProvisioningParameters", "servicecatalog:ProvisionProduct", "servicecatalog:SearchProducts", "servicecatalog:UpdateProvisionedProduct", "servicecatalog:ListProvisioningArtifacts", "servicecatalog:ListLaunchPaths", "servicecatalog:DescribeRecord", "cloudformation:DescribeStackResources" ], "Resource":"*", "Effect":"Allow" }, { "Sid":"AllowPassingServiceRoleForWorkspaceCreation", "Action":"iam:PassRole", "Resource":[ "arn:aws:iam::*:role/<your-emr-studio-service-role>" ], "Effect":"Allow" }, { "Sid":"AllowS3ListAndLocationPermissions", "Action":[ "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation" ], "Resource":"arn:aws:s3:::*", "Effect":"Allow" }, { "Sid":"AllowS3ReadOnlyAccessToLogs", "Action":[ "s3:GetObject" ], "Resource":[ "arn:aws:s3:::aws-logs-<aws-account-id>-<region>/elasticmapreduce/*" ], "Effect":"Allow" }, { "Sid":"AllowConfigurationForWorkspaceCollaboration", "Action":[ "elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities" ], "Resource":"*", "Effect":"Allow", "Condition":{ "StringEquals":{ "elasticmapreduce:ResourceTag/creatorUserId":"${aws:userId}" } } }, { "Sid":"DescribeNetwork", "Effect":"Allow", "Action":[ "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource":"*" }, { "Sid":"ListIAMRoles", "Effect":"Allow", "Action":[ "iam:ListRoles" ], "Resource":"*" }, { "Sid": "AllowServerlessActions", "Action": [ "emr-serverless:CreateApplication", "emr-serverless:UpdateApplication", "emr-serverless:DeleteApplication", "emr-serverless:ListApplications", "emr-serverless:GetApplication", "emr-serverless:StartApplication", "emr-serverless:StopApplication", "emr-serverless:StartJobRun", "emr-serverless:CancelJobRun", "emr-serverless:ListJobRuns", "emr-serverless:GetJobRun", "emr-serverless:GetDashboardForJobRun", "emr-serverless:AccessInteractiveEndpoints" ], "Resource": "*", "Effect": "Allow" }, { "Sid": "AllowPassingRuntimeRoleForRunningServerlessJob", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/serverless-runtime-role", "Effect": "Allow" } ] }

Die folgende erweiterte Benutzerrichtlinie erlaubt alle EMR Studio-Aktionen und ermöglicht es einem Benutzer, mithilfe einer EMR Cluster-Vorlage oder durch Bereitstellung einer Cluster-Konfiguration neue Amazon-Cluster zu erstellen.

Wichtig

Die Beispielrichtlinie beinhaltet nicht die CreateStudioPresignedUrl Erlaubnis, die Sie einem Benutzer gewähren müssen, wenn Sie den IAM Authentifizierungsmodus verwenden. Weitere Informationen finden Sie unter Weisen Sie einem EMR Studio einen Benutzer oder eine Gruppe zu.

Die Beispielrichtlinie enthält Condition Elemente zur Durchsetzung einer tagbasierten Zugriffskontrolle (TBAC), sodass Sie die Richtlinie zusammen mit der Beispieldienstrolle für EMR Studio verwenden können. Weitere Informationen finden Sie unter Erstellen Sie eine EMR Studio-Dienstrolle.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowEMRBasicActions", "Action":[ "elasticmapreduce:CreateEditor", "elasticmapreduce:DescribeEditor", "elasticmapreduce:ListEditors", "elasticmapreduce:StartEditor", "elasticmapreduce:StopEditor", "elasticmapreduce:DeleteEditor", "elasticmapreduce:OpenEditorInConsole", "elasticmapreduce:AttachEditor", "elasticmapreduce:DetachEditor", "elasticmapreduce:CreateRepository", "elasticmapreduce:DescribeRepository", "elasticmapreduce:DeleteRepository", "elasticmapreduce:ListRepositories", "elasticmapreduce:LinkRepository", "elasticmapreduce:UnlinkRepository", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:ListBootstrapActions", "elasticmapreduce:ListClusters", "elasticmapreduce:ListSteps", "elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "elasticmapreduce:GetOnClusterAppUIPresignedURL" ], "Resource":"*", "Effect":"Allow" }, { "Sid":"AllowEMRContainersBasicActions", "Action":[ "emr-containers:DescribeVirtualCluster", "emr-containers:ListVirtualClusters", "emr-containers:DescribeManagedEndpoint", "emr-containers:ListManagedEndpoints", "emr-containers:DescribeJobRun", "emr-containers:ListJobRuns" ], "Resource":"*", "Effect":"Allow" }, { "Sid": "AllowRetrievingManagedEndpointCredentials", "Effect": "Allow", "Action": [ "emr-containers:GetManagedEndpointSessionCredentials" ], "Resource": [ "arn:aws:emr-containers:<region>:<account-id>:/virtualclusters/<virtual-cluster-id>/endpoints/<managed-endpoint-id>" ], "Condition": { "StringEquals": { "emr-containers:ExecutionRoleArn": [ "arn:aws:iam::<account-id>:role/<emr-on-eks-execution-role>" ] } } }, { "Sid":"AllowSecretManagerListSecrets", "Action":[ "secretsmanager:ListSecrets" ], "Resource":"*", "Effect":"Allow" }, { "Sid":"AllowSecretCreationWithEMRTagsAndEMRStudioPrefix", "Effect":"Allow", "Action":"secretsmanager:CreateSecret", "Resource":"arn:aws:secretsmanager:*:*:secret:emr-studio-*", "Condition":{ "StringEquals":{ "aws:RequestTag/for-use-with-amazon-emr-managed-policies":"true" } } }, { "Sid":"AllowAddingTagsOnSecretsWithEMRStudioPrefix", "Effect":"Allow", "Action":"secretsmanager:TagResource", "Resource":"arn:aws:secretsmanager:*:*:secret:emr-studio-*" }, { "Sid":"AllowClusterTemplateRelatedIntermediateActions", "Action":[ "servicecatalog:DescribeProduct", "servicecatalog:DescribeProductView", "servicecatalog:DescribeProvisioningParameters", "servicecatalog:ProvisionProduct", "servicecatalog:SearchProducts", "servicecatalog:UpdateProvisionedProduct", "servicecatalog:ListProvisioningArtifacts", "servicecatalog:ListLaunchPaths", "servicecatalog:DescribeRecord", "cloudformation:DescribeStackResources" ], "Resource":"*", "Effect":"Allow" }, { "Sid":"AllowEMRCreateClusterAdvancedActions", "Action":[ "elasticmapreduce:RunJobFlow" ], "Resource":"*", "Effect":"Allow" }, { "Sid":"AllowPassingServiceRoleForWorkspaceCreation", "Action":"iam:PassRole", "Resource":[ "arn:aws:iam::*:role/<your-emr-studio-service-role>", "arn:aws:iam::*:role/EMR_DefaultRole_V2", "arn:aws:iam::*:role/EMR_EC2_DefaultRole" ], "Effect":"Allow" }, { "Sid":"AllowS3ListAndLocationPermissions", "Action":[ "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation" ], "Resource":"arn:aws:s3:::*", "Effect":"Allow" }, { "Sid":"AllowS3ReadOnlyAccessToLogs", "Action":[ "s3:GetObject" ], "Resource":[ "arn:aws:s3:::aws-logs-<aws-account-id>-<region>/elasticmapreduce/*" ], "Effect":"Allow" }, { "Sid":"AllowConfigurationForWorkspaceCollaboration", "Action":[ "elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities" ], "Resource":"*", "Effect":"Allow", "Condition":{ "StringEquals":{ "elasticmapreduce:ResourceTag/creatorUserId":"${aws:userId}" } } }, { "Sid" : "SageMakerDataWranglerForEMRStudio", "Effect" : "Allow", "Action" : [ "sagemaker:CreatePresignedDomainUrl", "sagemaker:DescribeDomain", "sagemaker:ListDomains", "sagemaker:ListUserProfiles" ], "Resource":"*" }, { "Sid":"DescribeNetwork", "Effect":"Allow", "Action":[ "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource":"*" }, { "Sid":"ListIAMRoles", "Effect":"Allow", "Action":[ "iam:ListRoles" ], "Resource":"*" }, { "Sid": "AllowServerlessActions", "Action": [ "emr-serverless:CreateApplication", "emr-serverless:UpdateApplication", "emr-serverless:DeleteApplication", "emr-serverless:ListApplications", "emr-serverless:GetApplication", "emr-serverless:StartApplication", "emr-serverless:StopApplication", "emr-serverless:StartJobRun", "emr-serverless:CancelJobRun", "emr-serverless:ListJobRuns", "emr-serverless:GetJobRun", "emr-serverless:GetDashboardForJobRun", "emr-serverless:AccessInteractiveEndpoints" ], "Resource": "*", "Effect": "Allow" }, { "Sid": "AllowPassingRuntimeRoleForRunningServerlessJob", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/serverless-runtime-role", "Effect": "Allow" }, { "Sid": "AllowCodeWhisperer", "Effect": "Allow", "Action": [ "codewhisperer:GenerateRecommendations" ], "Resource": "*" }, { "Sid": "AllowAthenaSQL", "Action": [ "athena:StartQueryExecution", "athena:StopQueryExecution", "athena:GetQueryExecution", "athena:GetQueryRuntimeStatistics", "athena:GetQueryResults", "athena:ListQueryExecutions", "athena:BatchGetQueryExecution", "athena:GetNamedQuery", "athena:ListNamedQueries", "athena:BatchGetNamedQuery", "athena:UpdateNamedQuery", "athena:DeleteNamedQuery", "athena:ListDataCatalogs", "athena:GetDataCatalog", "athena:ListDatabases", "athena:GetDatabase", "athena:ListTableMetadata", "athena:GetTableMetadata", "athena:ListWorkGroups", "athena:GetWorkGroup", "athena:CreateNamedQuery", "athena:GetPreparedStatement", "glue:CreateDatabase", "glue:DeleteDatabase", "glue:GetDatabase", "glue:GetDatabases", "glue:UpdateDatabase", "glue:CreateTable", "glue:DeleteTable", "glue:BatchDeleteTable", "glue:UpdateTable", "glue:GetTable", "glue:GetTables", "glue:BatchCreatePartition", "glue:CreatePartition", "glue:DeletePartition", "glue:BatchDeletePartition", "glue:UpdatePartition", "glue:GetPartition", "glue:GetPartitions", "glue:BatchGetPartition", "kms:ListAliases", "kms:ListKeys", "kms:DescribeKey", "lakeformation:GetDataAccess", "s3:GetBucketLocation", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload", "s3:PutObject", "s3:PutBucketPublicAccessBlock", "s3:ListAllMyBuckets" ], "Resource": "*", "Effect": "Allow" } ] }

Die folgende Benutzerrichtlinie enthält die Mindestbenutzerberechtigungen, die für die Verwendung einer EMR serverlosen interaktiven Anwendung mit EMR Studio Workspaces erforderlich sind.

Ersetzen Sie in dieser Beispielrichtlinie, die Benutzerberechtigungen für EMR serverlose interaktive Anwendungen mit EMR Studio enthält, die Platzhalter für serverless-runtime-role and emr-studio-service-role mit Ihrer richtigen EMRStudio-Dienstrolle und EMRServerless-Runtime-Rolle.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowServerlessActions", "Action": [ "emr-serverless:CreateApplication", "emr-serverless:UpdateApplication", "emr-serverless:DeleteApplication", "emr-serverless:ListApplications", "emr-serverless:GetApplication", "emr-serverless:StartApplication", "emr-serverless:StopApplication", "emr-serverless:StartJobRun", "emr-serverless:CancelJobRun", "emr-serverless:ListJobRuns", "emr-serverless:GetJobRun", "emr-serverless:GetDashboardForJobRun", "emr-serverless:AccessInteractiveEndpoints" ], "Resource": "*", "Effect": "Allow" }, { "Sid": "AllowEMRBasicActions", "Action": [ "elasticmapreduce:CreateEditor", "elasticmapreduce:DescribeEditor", "elasticmapreduce:ListEditors", "elasticmapreduce:UpdateStudio", "elasticmapreduce:StartEditor", "elasticmapreduce:StopEditor", "elasticmapreduce:DeleteEditor", "elasticmapreduce:OpenEditorInConsole", "elasticmapreduce:AttachEditor", "elasticmapreduce:DetachEditor", "elasticmapreduce:CreateStudio", "elasticmapreduce:DescribeStudio", "elasticmapreduce:DeleteStudio", "elasticmapreduce:ListStudios", "elasticmapreduce:CreateStudioPresignedUrl" ], "Resource": "*", "Effect": "Allow" }, { "Sid": "AllowPassingRuntimeRoleForRunningEMRServerlessJob", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/serverless-runtime-role", "Effect": "Allow" }, { "Sid": "AllowPassingServiceRoleForWorkspaceCreation", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/emr-studio-service-role", "Effect": "Allow" }, { "Sid": "AllowS3ListAndGetPermissions", "Action": [ "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation", "s3:GetObject" ], "Resource": "arn:aws:s3:::*", "Effect": "Allow" }, { "Sid":"DescribeNetwork", "Effect":"Allow", "Action":[ "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource":"*" }, { "Sid": "ListIAMRoles", "Effect": "Allow", "Action": [ "iam:ListRoles" ], "Resource": "*" } ] }

AWS Identity and Access Management Berechtigungen für EMR Studio-Benutzer

Die folgende Tabelle enthält jeden Amazon EMR Studio-Vorgang, den ein Benutzer ausführen könnte, und listet die IAM Mindestaktionen auf, die zur Durchführung dieses Vorgangs erforderlich sind. Sie erlauben diese Aktionen in Ihren IAM Berechtigungsrichtlinien (wenn Sie die IAM Authentifizierung verwenden) oder in Ihren Sitzungsrichtlinien für Benutzerrollen (wenn Sie die IAM Identity Center-Authentifizierung verwenden) für EMR Studio.

In der Tabelle werden auch die Operationen angezeigt, die in den einzelnen Beispielberechtigungsrichtlinien für EMR Studio zulässig sind. Weitere Informationen zu Beispiel-Berechtigungsrichtlinien finden Sie unter Erstellen Sie Berechtigungsrichtlinien für EMR Studio-Benutzer.

Aktion Basic Intermediär Advanced Zugeordnete Aktionen
Arbeitsbereiche erstellen und löschen Ja Ja Ja
"elasticmapreduce:CreateEditor", "elasticmapreduce:DescribeEditor", "elasticmapreduce:ListEditors", "elasticmapreduce:DeleteEditor"
Rufen Sie das Panel Zusammenarbeit auf, aktivieren Sie die Workspace-Zusammenarbeit und fügen Sie Mitarbeiter hinzu. Weitere Informationen finden Sie unter Legen Sie die Eigentümerschaft für die Workspace-Zusammenarbeit fest. Ja Ja Ja
"elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities"
Sehen Sie sich beim Erstellen eines neuen EMR Clusters eine Liste der Amazon S3 Control Speicher-Buckets in demselben Konto wie Studio an und greifen Sie auf Container-Protokolle zu, wenn Sie eine Weboberfläche zum Debuggen von Anwendungen verwenden Ja Ja Ja
"s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation", "s3:GetObject"
Auf Workspaces zugreifen Ja Ja Ja
"elasticmapreduce:DescribeEditor", "elasticmapreduce:ListEditors", "elasticmapreduce:StartEditor", "elasticmapreduce:StopEditor", "elasticmapreduce:OpenEditorInConsole"
Vorhandene EMR Amazon-Cluster, die mit dem Workspace verknüpft sind, anhängen oder trennen Ja Ja Ja
"elasticmapreduce:AttachEditor", "elasticmapreduce:DetachEditor", "elasticmapreduce:ListClusters", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:ListBootstrapActions"
Amazon EMR an Clustern anhängen oder trennen EKS Ja Ja Ja
"elasticmapreduce:AttachEditor", "elasticmapreduce:DetachEditor", "emr-containers:ListVirtualClusters", "emr-containers:DescribeVirtualCluster", "emr-containers:ListManagedEndpoints", "emr-containers:DescribeManagedEndpoint", "emr-containers:GetManagedEndpointSessionCredentials"
EMRServerlose Anwendungen, die dem Workspace zugeordnet sind, anhängen oder trennen Nein Ja Ja
"elasticmapreduce:AttachEditor", "elasticmapreduce:DetachEditor", "emr-serverless:GetApplication", "emr-serverless:StartApplication", "emr-serverless:ListApplications", "emr-serverless:GetDashboardForJobRun", "emr-serverless:AccessInteractiveEndpoints", "iam:PassRole"

Die PassRole Berechtigung ist erforderlich, um die Runtime-Rolle für EMR serverlose Jobs zu bestehen. Weitere Informationen finden Sie unter Job Runtime Roles im Amazon EMR Serverless User Guide.

Debuggen Sie Amazon EMR bei EC2 Jobs mit persistenten Anwendungsbenutzeroberflächen Ja Ja Ja
"elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "elasticmapreduce:ListClusters", "elasticmapreduce:ListSteps", "elasticmapreduce:DescribeCluster", "s3:ListBucket", "s3:GetObject"
Debuggen Sie Amazon EMR bei EC2 Jobs mit Benutzeroberflächen für Cluster-Anwendungen Ja Ja Ja
"elasticmapreduce:GetOnClusterAppUIPresignedURL"
Debuggen Sie Amazon EMR bei EKS Jobläufen mit dem Spark History Server Ja Ja Ja
"elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "emr-containers:ListVirtualClusters", "emr-containers:DescribeVirtualCluster", "emr-containers:ListJobRuns", "emr-containers:DescribeJobRun", "s3:ListBucket", "s3:GetObject"
Git-Repositorys erstellen und löschen Ja Ja Ja
"elasticmapreduce:CreateRepository", "elasticmapreduce:DeleteRepository", "elasticmapreduce:ListRepositories", "elasticmapreduce:DescribeRepository", "secretsmanager:CreateSecret", "secretsmanager:ListSecrets", "secretsmanager:TagResource"
Git-Repositorys verknüpfen und trennen Ja Ja Ja
"elasticmapreduce:LinkRepository", "elasticmapreduce:UnlinkRepository", "elasticmapreduce:ListRepositories", "elasticmapreduce:DescribeRepository"
Neue Cluster aus vordefinierten Cluster-Vorlagen erstellen Nein Ja Ja
"servicecatalog:SearchProducts", "servicecatalog:DescribeProduct", "servicecatalog:DescribeProductView", "servicecatalog:DescribeProvisioningParameters", "servicecatalog:ProvisionProduct", "servicecatalog:UpdateProvisionedProduct", "servicecatalog:ListProvisioningArtifacts", "servicecatalog:DescribeRecord", "servicecatalog:ListLaunchPaths", "cloudformation:DescribeStackResources", "elasticmapreduce:ListClusters", "elasticmapreduce:DescribeCluster"
Stellen Sie eine Clusterkonfiguration bereit, um neue Cluster zu erstellen. Nein Nein Ja
"elasticmapreduce:RunJobFlow", "iam:PassRole", "elasticmapreduce:ListClusters", "elasticmapreduce:DescribeCluster"
Weisen Sie einem Studio einen Benutzer zu, wenn Sie den IAM Authentifizierungsmodus verwenden. Nein Nein Nein
"elasticmapreduce:CreateStudioPresignedUrl"
Beschreiben Sie Netzwerkobjekte. Ja Ja Ja
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DescribeNetwork", "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource": "*" } ] }
IAMRollen auflisten. Ja Ja Ja
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListIAMRoles", "Effect": "Allow", "Action": [ "iam:ListRoles" ], "Resource": "*" } ] }
Stellen Sie von Amazon EMR Studio aus eine Connect zu SageMaker Studio her und verwenden Sie die visuelle Oberfläche von Data Wrangler. Nein Nein Ja
"sagemaker:CreatePresignedDomainUrl", "sagemaker:DescribeDomain", "sagemaker:ListDomains", "sagemaker:ListUserProfiles"
Verwenden Sie Amazon CodeWhisperer in Ihrem EMR Studio. Nein Nein Ja
"codewhisperer:GenerateRecommendations"
Greifen Sie von Ihrem EMR Studio aus auf den Amazon Athena SQL Athena-Editor zu. Diese Liste enthält möglicherweise nicht alle Berechtigungen, die Sie für die Nutzung aller Athena-Features benötigen. Die up-to-date Liste der meisten finden Sie in der Athena-Vollzugriffsrichtlinie. Nein Nein Ja
"athena:StartQueryExecution", "athena:StopQueryExecution", "athena:GetQueryExecution", "athena:GetQueryRuntimeStatistics", "athena:GetQueryResults", "athena:ListQueryExecutions", "athena:BatchGetQueryExecution", "athena:GetNamedQuery", "athena:ListNamedQueries", "athena:BatchGetNamedQuery", "athena:UpdateNamedQuery", "athena:DeleteNamedQuery", "athena:ListDataCatalogs", "athena:GetDataCatalog", "athena:ListDatabases", "athena:GetDatabase", "athena:ListTableMetadata", "athena:GetTableMetadata", "athena:ListWorkGroups", "athena:GetWorkGroup", "athena:CreateNamedQuery", "athena:GetPreparedStatement", "glue:CreateDatabase", "glue:DeleteDatabase", "glue:GetDatabase", "glue:GetDatabases", "glue:UpdateDatabase", "glue:CreateTable", "glue:DeleteTable", "glue:BatchDeleteTable", "glue:UpdateTable", "glue:GetTable", "glue:GetTables", "glue:BatchCreatePartition", "glue:CreatePartition", "glue:DeletePartition", "glue:BatchDeletePartition", "glue:UpdatePartition", "glue:GetPartition", "glue:GetPartitions", "glue:BatchGetPartition", "kms:ListAliases", "kms:ListKeys", "kms:DescribeKey", "lakeformation:GetDataAccess", "s3:GetBucketLocation", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload", "s3:PutObject", "s3:PutBucketPublicAccessBlock", "s3:ListAllMyBuckets"