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
-
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" ] } ] }
-
Entfernen Sie die standardmäßigen Rollenberechtigungen und -richtlinien.
-
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.
Themen
Anmerkung
Verwenden Sie die EMR Studio-Servicerolle, um Amazon S3 S3-Zugriffsberechtigungen für das Speichern von Notizbuchdateien und AWS Secrets Manager Zugriffsberechtigungen zum 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 Studio-Benutzer EMR. 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
Themen
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.
-
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
}" } } } -
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.
Hängen Sie die Berechtigungsrichtlinie an Ihre IAM Identität an
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 … |
---|---|
IAM-Authentifizierung | 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
und emr-studio-service-role
durch Ihre korrekte EMRStudio-Dienstrolle und EMRserverlose 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 Studio-Benutzer EMR
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 |
|
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 |
|
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 |
|
Auf Workspaces zugreifen | Ja | Ja | Ja |
|
Vorhandene EMR Amazon-Cluster, die mit dem Workspace verknüpft sind, anhängen oder trennen | Ja | Ja | Ja |
|
Amazon EMR an Clustern anhängen oder trennen EKS | Ja | Ja | Ja |
|
EMRServerlose Anwendungen, die dem Workspace zugeordnet sind, anhängen oder trennen | Nein | Ja | Ja |
Die |
Debuggen Sie Amazon EMR bei EC2 Jobs mit persistenten Anwendungsbenutzeroberflächen | Ja | Ja | Ja |
|
Debuggen Sie Amazon EMR bei EC2 Jobs mit Benutzeroberflächen für Cluster-Anwendungen | Ja | Ja | Ja |
|
Debuggen Sie Amazon EMR bei EKS Jobläufen mit dem Spark History Server | Ja | Ja | Ja |
|
Git-Repositorys erstellen und löschen | Ja | Ja | Ja |
|
Git-Repositorys verknüpfen und trennen | Ja | Ja | Ja |
|
Neue Cluster aus vordefinierten Cluster-Vorlagen erstellen | Nein | Ja | Ja |
|
Stellen Sie eine Clusterkonfiguration bereit, um neue Cluster zu erstellen. | Nein | Nein | Ja |
|
Weisen Sie einem Studio einen Benutzer zu, wenn Sie den IAM Authentifizierungsmodus verwenden. | Nein | Nein | Nein |
|
Beschreiben Sie Netzwerkobjekte. | Ja | Ja | Ja |
|
IAMRollen auflisten. | Ja | Ja | Ja |
|
Stellen Sie von Amazon SageMaker AI EMR Studio aus eine Connect zu Studio her und verwenden Sie die visuelle Oberfläche von Data Wrangler. |
Nein | Nein | Ja |
|
Verwenden Sie Amazon CodeWhisperer in Ihrem EMR Studio. | Nein | Nein | Ja |
|
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 |
|