Configurazione delle autorizzazioni utente di EMR Studio per Amazon EC2 o Amazon EKS - Amazon EMR

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazione delle autorizzazioni utente di EMR Studio per Amazon EC2 o Amazon EKS

È necessario configurare le policy di autorizzazione utente per Amazon EMR Studio in modo da poter impostare autorizzazioni granulari per utenti e gruppi. Per informazioni sul funzionamento delle autorizzazioni utente in EMR Studio, consulta Controllo accessi in Come funziona Amazon EMR Studio.

Nota

Le autorizzazioni descritte in questa sezione non applicano il controllo dell'accesso ai dati. Per gestire l'accesso ai set di dati di input, è necessario configurare le autorizzazioni per i cluster utilizzati da Studio. Per ulteriori informazioni, consulta Sicurezza in Amazon EMR.

Creazione di un ruolo utente di EMR Studio per la modalità di autenticazione IAM Identity Center

Quando utilizzi la modalità di autenticazione IAM Identity Center per EMR Studio, devi creare un ruolo utente.

Creazione di un ruolo utente per EMR Studio
  1. Segui le istruzioni in Creazione di un ruolo per delegare le autorizzazioni a un servizio AWS nella Guida per l'utente di AWS Identity and Access Management per creare il ruolo utente.

    Quando crei il ruolo, utilizza la seguente policy di relazione di attendibilità.

    { "Version": "2008-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "elasticmapreduce.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetContext" ] } ] }
  2. Rimuovere le autorizzazioni e le policy di ruolo predefinite.

  3. Prima di assegnare utenti e gruppi a uno Studio, collega le policy di sessione di EMR Studio al ruolo utente. Per ricevere istruzioni su come creare policy di sessione, consulta Creazione di policy di autorizzazione per gli utenti di EMR Studio.

Creazione di policy di autorizzazione per gli utenti di EMR Studio

Fai riferimento alle sezioni seguenti per creare policy di autorizzazione per EMR Studio.

Nota

Per impostare le autorizzazioni di accesso di Amazon S3 per la memorizzazione dei file notebook e le autorizzazioni di accesso di AWS Secrets Manager per leggere i segreti durante il collegamento dei workspace ai repository Git, utilizza il ruolo di servizio EMR Studio.

Creazione delle policy di autorizzazione

Crea una o più policy di autorizzazione IAM che specificano le operazioni che possono essere compiute da un utente in Studio. Ad esempio, utilizzando le policy di esempio in questa pagina, puoi creare tre policy separate per utenti di Studio base, intermedi e avanzati.

Per una suddivisione di ciascuna operazione di Studio che un utente può eseguire e per il numero minimo di azioni IAM necessarie per eseguire ciascuna operazione, consulta Autorizzazioni AWS Identity and Access Management per gli utenti di EMR Studio. Per i passaggi per creare le policy, consulta Creazione di policy IAM nella Guida per l'utente di IAM.

La policy di autorizzazione deve includere le istruzioni seguenti.

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

Imposta la proprietà per la collaborazione di Workspace

La collaborazione di Workspace consente a più utenti di lavorare contemporaneamente nello stesso Workspace e può essere configurata con il pannello Collaboration (Collaborazione) nell'interfaccia utente di Workspace. Per visualizzare e utilizzare il pannello Collaboration (Collaborazione), un utente deve disporre delle seguenti autorizzazioni. Tutti gli utenti con queste autorizzazioni possono visualizzare e utilizzare il pannello Collaboration (Collaborazione).

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

Per limitare l'accesso al pannello Collaboration (Collaborazione), puoi utilizzare il controllo degli accessi basato su tag. Quando un utente crea un Workspace, EMR Studio applica un tag di default con una chiave creatorUserId il cui valore è l'ID dell'utente che crea il Workspace.

Nota

EMR Studio aggiunge il tag creatorUserId ai workspace creati dopo il 16 novembre 2021. Per limitare chi può configurare la collaborazione per i workspace creati prima di questa data, si consiglia di aggiungere manualmente il tag creatorUserId al workspace e di utilizzare il controllo degli accessi basato su tag nelle policy di autorizzazione utente.

La seguente istruzione di esempio consente a un utente di configurare la collaborazione per tutti i Workspace con la chiave di tag creatorUserId il cui valore corrisponde all'ID dell'utente (indicato dalla variabile aws:userId della policy). In altre parole, l'istruzione consente a un utente di configurare la collaborazione per Workspace creati. Per ulteriori informazioni sulle variabili della policy, consulta Elementi delle policy IAM: variabili e tag nella Guida per l'utente di IAM.

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

Creazione di una politcy di segreti Git a livello di utente

Per utilizzare le autorizzazioni a livello di utente

EMR Studio aggiunge automaticamente il tag for-use-with-amazon-emr-managed-user-policies quando crea segreti Git. Se desideri controllare l'accesso ai segreti Git a livello di utente, aggiungi le autorizzazioni basate su tag alla policy del ruolo utente di EMR Studio con secretsmanager:GetSecretValue come mostrato nella sezione Per passare dalle autorizzazioni a livello di servizio alle autorizzazioni a livello di utente seguente.

Se disponi di autorizzazioni esistenti per secretsmanager:GetSecretValue nella policy del ruolo di servizio di EMR Studio, devi rimuovere tali autorizzazioni.

Per passare dalle autorizzazioni a livello di servizio alle autorizzazioni a livello di utente

Nota

Il tag for-use-with-amazon-emr-managed-user-policies assicura che le autorizzazioni del Passaggio 1 di seguito concedano al creatore del workspace l'accesso al segreto Git. Tuttavia, se hai collegato i repository Git prima del 1° settembre 2023, ai segreti Git corrispondenti verrà negato l'accesso perché non hanno il tag for-use-with-amazon-emr-managed-user-policies applicato. Per applicare le autorizzazioni a livello utente, devi ricreare i vecchi segreti JupyterLab e collegare nuovamente i repository Git appropriati.

Per ulteriori informazioni sulle variabili della policy, consulta Elementi delle policy IAM: variabili e tag nella Guida per l'utente di IAM.

  1. Aggiungi le seguenti autorizzazioni alla policy del ruolo utente di EMR Studio. Viene utilizzata la chiave for-use-with-amazon-emr-managed-user-policies con il valore "${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. Se presente, rimuovi la seguente autorizzazione dalla policy del ruolo di servizio di EMR Studio. Poiché la polcy del ruolo di servizio si applica a tutti i segreti definiti da ciascun utente, è necessario eseguire questa operazione una sola volta.

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

Per utilizzare le autorizzazioni a livello di servizio

A partire dal 1° settembre 2023, EMR Studio aggiunge automaticamente il tag for-use-with-amazon-emr-managed-user-policies per il controllo degli accessi a livello di utente. Poiché si tratta di una funzionalità aggiuntiva, è possibile continuare a utilizzare l'accesso a livello di servizio disponibile tramite l'autorizzazione GetSecretValue nel ruolo di servizio di EMR Studio.

Per i segreti creati prima del 1° settembre 2023, EMR Studio non ha aggiunto il tag for-use-with-amazon-emr-managed-user-policies. Per continuare a utilizzare le autorizzazioni a livello di servizio, è sufficiente mantenere il ruolo di servizio di EMR Studio e le autorizzazioni del ruolo utente esistenti. Tuttavia, per limitare chi può accedere a un singolo segreto, si consiglia di seguire la procedura riportata in Per utilizzare le autorizzazioni a livello di utente per aggiungere manualmente il tag for-use-with-amazon-emr-managed-user-policies ai segreti e di utilizzare il controllo degli accessi basato su tag nelle policy di autorizzazione utente.

Per ulteriori informazioni sulle variabili della policy, consulta Elementi delle policy IAM: variabili e tag nella Guida per l'utente di IAM.

Collegamento della policy di autorizzazione all'identità IAM

La tabella seguente riepiloga l'identità IAM a cui si collega una policy di autorizzazione, a seconda della modalità di autenticazione di EMR Studio. Per ricevere istruzioni su come allegare una policy, consulta Aggiunta e rimozione di autorizzazioni per identità IAM.

Se utilizzi... Collega la policy a…
Autenticazione IAM Le identità IAM (utenti, gruppi di utenti o ruoli). Ad esempio, prova a collegare una policy di autorizzazione a un utente nel Account AWS.
Federazione IAM con un provider di identità esterno (IdP)

Il ruolo o i ruoli IAM creati per il tuo IdP esterno. Per esempio, una federazione IAM per SAML 2.0.

EMR Studio utilizza le autorizzazioni collegate ai ruoli IAM per l'utente o gli utenti con accesso federato a uno Studio.

IAM Identity Center Il tuo ruolo utente di Amazon EMR Studio.

Esempi di policy utente

La seguente policy utente di base consente la maggior parte delle operazioni di EMR Studio, ma non consente a un utente di creare nuovi cluster Amazon EMR.

Importante

La policy di esempio non include l'autorizzazione CreateStudioPresignedUrl, che è necessario concedere a un utente quando si utilizza la modalità di autenticazione IAM. Per ulteriori informazioni, consulta Assegnare un utente o un gruppo a un EMR Studio.

La policy di esempio include elementi Condition per applicare il controllo degli accessi basato su tag (TBAC) in modo da poter utilizzare la policy con il ruolo di servizio di esempio per EMR Studio. Per ulteriori informazioni, consulta Creazione di un ruolo di servizio EMR Studio.

{ "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":"*" } ] }

La seguente policy utente intermedia consente la maggior parte delle operazioni di EMR Studio e consente a un utente di creare nuovi cluster Amazon EMR utilizzando un modello di cluster.

Importante

La policy di esempio non include l'autorizzazione CreateStudioPresignedUrl, che è necessario concedere a un utente quando si utilizza la modalità di autenticazione IAM. Per ulteriori informazioni, consulta Assegnare un utente o un gruppo a un EMR Studio.

La policy di esempio include elementi Condition per applicare il controllo degli accessi basato su tag (TBAC) in modo da poter utilizzare la policy con il ruolo di servizio di esempio per EMR Studio. Per ulteriori informazioni, consulta Creazione di un ruolo di servizio EMR Studio.

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

La seguente policy utente avanzata consente tutte le operazioni di EMR Studio e consente a un utente di creare nuovi cluster Amazon EMR utilizzando un modello di cluster o fornendo una configurazione cluster.

Importante

La policy di esempio non include l'autorizzazione CreateStudioPresignedUrl, che è necessario concedere a un utente quando si utilizza la modalità di autenticazione IAM. Per ulteriori informazioni, consulta Assegnare un utente o un gruppo a un EMR Studio.

La policy di esempio include elementi Condition per applicare il controllo degli accessi basato su tag (TBAC) in modo da poter utilizzare la policy con il ruolo di servizio di esempio per EMR Studio. Per ulteriori informazioni, consulta Creazione di un ruolo di servizio EMR Studio.

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

La seguente policy utente contiene le autorizzazioni utente minime necessarie per utilizzare un'applicazione interattiva EMR Serverless con EMR Studio WorkSpaces.

In questo esempio di policy che prevede le autorizzazioni utente per le applicazioni interattive EMR Serverless con EMR Studio, sostituisci i segnaposto serverless-runtime-roleper emr-studio-service-rolee con il ruolo di servizio EMR Studio e il ruolo di runtime EMR Serverless corretti.

{ "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": "*" } ] }

Autorizzazioni AWS Identity and Access Management per gli utenti di EMR Studio

La tabella seguente include ogni operazione di Amazon EMR Studio che un utente potrebbe eseguire ed elenca le azioni IAM minime necessarie per eseguire tale operazione. Consenti queste operazioni nelle policy di autorizzazione IAM (quando utilizzi l'autenticazione IAM) o nelle policy di sessione del ruolo utente (quando utilizzi l'autenticazione IAM Identity Center) per EMR Studio.

La tabella riporta inoltre le operazioni consentite in ciascuna delle policy di autorizzazione di esempio per EMR Studio. Per ulteriori informazioni su policy di autorizzazione di esempio, consulta Creazione di policy di autorizzazione per gli utenti di EMR Studio.

Azione Base Intermedia Avanzata Azioni associate
Creazione ed eliminazione di Workspace
"elasticmapreduce:CreateEditor", "elasticmapreduce:DescribeEditor", "elasticmapreduce:ListEditors", "elasticmapreduce:DeleteEditor"
Visualizza il pannello Collaborazione, abilita la collaborazione di WorkSpace e aggiungi collaboratori. Per ulteriori informazioni, consulta Imposta la proprietà per la collaborazione di Workspace.
"elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities"
Visualizza un elenco di bucket di archiviazione Amazon S3 Control nello stesso account di Studio quando crei un nuovo cluster EMR e accedi ai log del container quando utilizzi un'interfaccia utente Web per eseguire il debug delle applicazioni
"s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation", "s3:GetObject"
Accesso ai Workspace
"elasticmapreduce:DescribeEditor", "elasticmapreduce:ListEditors", "elasticmapreduce:StartEditor", "elasticmapreduce:StopEditor", "elasticmapreduce:OpenEditorInConsole"
Collegamento o scollegamento di cluster Amazon EMR esistenti associati al Workspace
"elasticmapreduce:AttachEditor", "elasticmapreduce:DetachEditor", "elasticmapreduce:ListClusters", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:ListBootstrapActions"
Collegamento o scollegamento di cluster Amazon EMR su EKS
"elasticmapreduce:AttachEditor", "elasticmapreduce:DetachEditor", "emr-containers:ListVirtualClusters", "emr-containers:DescribeVirtualCluster", "emr-containers:ListManagedEndpoints", "emr-containers:DescribeManagedEndpoint", "emr-containers:GetManagedEndpointSessionCredentials"
Collegamento o scollegamento delle applicazioni EMR Serverless associate al Workspace No
"elasticmapreduce:AttachEditor", "elasticmapreduce:DetachEditor", "emr-serverless:GetApplication", "emr-serverless:StartApplication", "emr-serverless:ListApplications", "emr-serverless:GetDashboardForJobRun", "emr-serverless:AccessInteractiveEndpoints", "iam:PassRole"

L'autorizzazione PassRole è necessaria per passare il ruolo di runtime del processo EMR Serverless. Per ulteriori informazioni, consulta la sezione Ruoli di runtime del processo nella Guida per l'utente di Amazon EMR serverless.

Esecuzione del debug dei processi Amazon EMR su EC2 con interfacce utente dell'applicazione persistente
"elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "elasticmapreduce:ListClusters", "elasticmapreduce:ListSteps", "elasticmapreduce:DescribeCluster", "s3:ListBucket", "s3:GetObject"
Esecuzione del debug dei processi Amazon EMR su EC2 con interfacce utente dell'applicazione su cluster
"elasticmapreduce:GetOnClusterAppUIPresignedURL"
Esecuzione del debug delle esecuzioni di processo Amazon EMR su EKS utilizzando Spark History Server
"elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "emr-containers:ListVirtualClusters", "emr-containers:DescribeVirtualCluster", "emr-containers:ListJobRuns", "emr-containers:DescribeJobRun", "s3:ListBucket", "s3:GetObject"
Creazione ed eliminazione di repository Git
"elasticmapreduce:CreateRepository", "elasticmapreduce:DeleteRepository", "elasticmapreduce:ListRepositories", "elasticmapreduce:DescribeRepository", "secretsmanager:CreateSecret", "secretsmanager:ListSecrets", "secretsmanager:TagResource"
Collegamento e scollegamento di repository Git
"elasticmapreduce:LinkRepository", "elasticmapreduce:UnlinkRepository", "elasticmapreduce:ListRepositories", "elasticmapreduce:DescribeRepository"
Creazione di nuovi cluster da modelli di cluster predefiniti No
"servicecatalog:SearchProducts", "servicecatalog:DescribeProduct", "servicecatalog:DescribeProductView", "servicecatalog:DescribeProvisioningParameters", "servicecatalog:ProvisionProduct", "servicecatalog:UpdateProvisionedProduct", "servicecatalog:ListProvisioningArtifacts", "servicecatalog:DescribeRecord", "servicecatalog:ListLaunchPaths", "cloudformation:DescribeStackResources", "elasticmapreduce:ListClusters", "elasticmapreduce:DescribeCluster"
Fornisci una configurazione del cluster per creare nuovi cluster. No No
"elasticmapreduce:RunJobFlow", "iam:PassRole", "elasticmapreduce:ListClusters", "elasticmapreduce:DescribeCluster"
Assegna un utente a uno Studio quando utilizzi la modalità di autenticazione IAM. No No No
"elasticmapreduce:CreateStudioPresignedUrl"
Descrivi oggetti di rete.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DescribeNetwork", "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource": "*" } ] }
Elenca i ruoli IAM.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListIAMRoles", "Effect": "Allow", "Action": [ "iam:ListRoles" ], "Resource": "*" } ] }
Connect a EMR Studio da Amazon SageMaker Studio e utilizza l'interfaccia visiva Data Wrangler. No No
"sagemaker:CreatePresignedDomainUrl", "sagemaker:DescribeDomain", "sagemaker:ListDomains", "sagemaker:ListUserProfiles"
Usa Amazon CodeWhisperer nel tuo EMR Studio. No No
"codewhisperer:GenerateRecommendations"
Accedi all'editor SQL di Amazon Athena dal tuo EMR Studio. Questo elenco potrebbe non includere tutte le autorizzazioni necessarie per utilizzare tutte le funzionalità di Athena. Per la maggior parte dell' up-to-date elenco, consulta la politica di accesso completo di Athena. No No
"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"