Configurar los permisos de usuario de EMR Studio para Amazon EC2 o Amazon EKS - Amazon EMR

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configurar los permisos de usuario de EMR Studio para Amazon EC2 o Amazon EKS

Debe configurar las políticas de permisos de usuario para Amazon EMR Studio para poder establecer permisos de usuarios y grupos detallados. Para obtener información sobre cómo funcionan los permisos de usuario en EMR Studio, consulte en. Control de acceso Cómo funciona Amazon EMR Studio

nota

Los permisos que se describen en esta sección no aplican el control de acceso a los datos. Para administrar el acceso a los conjuntos de datos de entrada, debe configurar los permisos para los clústeres que usa Studio. Para obtener más información, consulte Seguridad en Amazon EMR.

Cree un rol de usuario de EMR Studio para el modo de autenticación de IAM Identity Center

Debe crear un rol de usuario de EMR Studio cuando utilice el modo de autenticación de IAM Identity Center.

Para crear un rol de usuario para EMR Studio
  1. Siga las instrucciones de la Guía del AWS Identity and Access Management usuario sobre cómo crear un rol para delegar permisos a un AWS servicio para crear un rol de usuario.

    Al crear el rol, utilice la siguiente política de relaciones de confianza.

    { "Version": "2008-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "elasticmapreduce.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetContext" ] } ] }
  2. Quite los permisos de rol y las políticas predeterminados.

  3. Antes de asignar usuarios y grupos a un Studio, adjunta las políticas de sesión de EMR Studio al rol de usuario. Para obtener instrucciones sobre cómo crear políticas de sesión, consulte Crea políticas de permisos para los usuarios de EMR Studio.

Crea políticas de permisos para los usuarios de EMR Studio

Consulte las siguientes secciones para crear políticas de permisos para EMR Studio.

nota

Para configurar los permisos de acceso a Amazon S3 para almacenar archivos de bloc de notas y para configurar los permisos de AWS Secrets Manager acceso para leer secretos al vincular Workspaces a los repositorios de Git, utilice el rol de servicio EMR Studio.

Creación de las políticas de permisos

Crea una o más políticas de IAM permisos que especifiquen qué acciones puede realizar un usuario en tu Studio. Por ejemplo, puede crear tres políticas independientes para los usuarios básicos, intermedios y avanzados de Studio con los ejemplos de políticas de esta página.

Para obtener un desglose de cada operación de Studio que puede realizar un usuario y las IAM acciones mínimas que se requieren para realizar cada operación, consulteAWS Identity and Access Management permisos para los usuarios de EMR Studio. Para ver los pasos necesarios para crear las políticas, consulte Creación de IAM políticas en la Guía del IAM usuario.

La política de permisos debe incluir las siguientes instrucciones.

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

Definir la propiedad de la colaboración en el espacio de trabajo

La colaboración en el espacio de trabajo permite que varios usuarios trabajen simultáneamente en el mismo espacio de trabajo y se puede configurar con el panel Colaboración de la interfaz de usuario del espacio de trabajo. Para ver y utilizar el panel Colaboración, el usuario debe tener los siguientes permisos. Cualquier usuario con estos permisos puede ver y usar el panel Colaboración.

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

Para restringir el acceso al panel Colaboración, puede utilizar el control de acceso basado en etiquetas. Cuando un usuario crea un espacio de trabajo, EMR Studio aplica una etiqueta predeterminada con una clave creatorUserId cuyo valor es el ID del usuario que crea el espacio de trabajo.

nota

EMRStudio añade la creatorUserId etiqueta a los espacios de trabajo creados después del 16 de noviembre de 2021. Para restringir quién puede configurar la colaboración en espacios de trabajo que usted creó antes, le recomendamos que agregue manualmente la etiqueta creatorUserId a su espacio de trabajo y, a continuación, utilice el control de acceso basado en etiquetas en sus políticas de permisos de usuario.

La siguiente instrucción de ejemplo permite a un usuario configurar la colaboración para cualquier espacio de trabajo con la clave de etiqueta creatorUserId cuyo valor coincida con el ID del usuario (indicado por la variable de política aws:userId). En otras palabras, la instrucción permite al usuario configurar la colaboración para los espacios de trabajo que cree. Para obtener más información sobre las variables de política, consulte los elementos de IAM política: variables y etiquetas en la Guía del IAM usuario.

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

Creación de una política de secretos de Git de nivel de usuario

Para usar permisos de nivel de usuario

EMRStudio añade automáticamente la for-use-with-amazon-emr-managed-user-policies etiqueta cuando crea secretos de Git. Si quieres controlar el acceso a los secretos de Git a nivel de usuario, añade permisos basados en etiquetas a la política de roles de usuario de EMR Studio tal y secretsmanager:GetSecretValue como se muestra en la siguiente Para pasar de los permisos de nivel de servicio a los permisos de nivel de usuario sección.

Si ya tienes permisos secretsmanager:GetSecretValue en la política de roles de servicio de EMR Studio, debes eliminarlos.

Para pasar de los permisos de nivel de servicio a los permisos de nivel de usuario

nota

La etiqueta for-use-with-amazon-emr-managed-user-policies garantiza que los permisos del paso 1 a continuación concedan al creador del espacio de trabajo acceso al secreto de Git. Sin embargo, si enlazó los repositorios de Git antes del 1 de septiembre de 2023, se denegará el acceso a los secretos de Git correspondientes porque no tienen la etiqueta for-use-with-amazon-emr-managed-user-policies aplicada. Para aplicar permisos a nivel de usuario, debes volver a crear los antiguos secretos JupyterLab y volver a vincular los repositorios de Git correspondientes.

Para obtener más información sobre las variables de política, consulta los elementos IAM de política: variables y etiquetas en la Guía del IAM usuario.

  1. Añada los siguientes permisos a la política de roles de usuario de EMR Studio. Utiliza la clave for-use-with-amazon-emr-managed-user-policies con el valor "${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. Si está presente, elimine el siguiente permiso de la política de roles de servicio de EMR Studio. Como la política de rol de servicio se aplica a todos los secretos definidos por cada usuario, solo tiene que hacerlo una vez.

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

Para usar permisos de nivel de servicio

A partir del 1 de septiembre de 2023, EMR Studio añadirá automáticamente la for-use-with-amazon-emr-managed-user-policies etiqueta para el control de acceso a nivel de usuario. Como se trata de una capacidad adicional, puedes seguir utilizando el acceso a nivel de servicio que está disponible mediante el GetSecretValue permiso del rol de servicio de EMRStudio.

En el caso de los secretos creados antes del 1 de septiembre de 2023, EMR Studio no añadió la for-use-with-amazon-emr-managed-user-policies etiqueta. Para seguir usando los permisos de nivel de servicio, solo tienes que conservar los permisos del rol de servicio y del rol de usuario actuales de EMR Studio. Sin embargo, para restringir quién puede acceder a un secreto individual, le recomendamos que siga los pasos en Para usar permisos de nivel de usuario para agregar manualmente la etiqueta for-use-with-amazon-emr-managed-user-policies a sus secretos y, a continuación, utilice el control de acceso basado en etiquetas en sus políticas de permisos de usuario.

Para obtener más información sobre las variables de política, consulte los elementos IAM de la política: variables y etiquetas en la Guía del IAMusuario.

Adjunte la política de permisos a su IAM identidad

En la siguiente tabla, se resume la IAM identidad a la que se adjunta una política de permisos, según el modo de autenticación de EMR Studio. Para obtener instrucciones sobre cómo adjuntar una política, consulte Añadir y eliminar permisos de IAM identidad.

Si usa… Asociar la política a…
IAMautenticación Sus IAM identidades (usuarios, grupos de usuarios o funciones). Por ejemplo, puede asociar una política de permisos a un usuario en su Cuenta de AWS.
IAMfederación con un proveedor de identidad externo (IdP)

El IAM rol o los roles que crea para su IdP externo. Por ejemplo, una federación IAM de formularios SAML 2.0.

EMRStudio usa los permisos que adjuntas a tus IAM roles para los usuarios con acceso federado a un Studio.

IAMCentro de identidades Tu rol de usuario de Amazon EMR Studio.

Ejemplo de políticas de usuario

La siguiente política de usuario básica permite la mayoría de las acciones de EMR Studio, pero no permite que un usuario cree nuevos EMR clústeres de Amazon.

importante

La política de ejemplo no incluye el CreateStudioPresignedUrl permiso, que debes conceder a un usuario cuando utilices el modo de IAM autenticación. Para obtener más información, consulte Asigne un usuario o un grupo a un EMR estudio.

La política de ejemplo incluye Condition elementos para aplicar el control de acceso basado en etiquetas (TBAC), de modo que se pueda utilizar la política con el rol de servicio de ejemplo para EMR Studio. Para obtener más información, consulte Cree un rol de servicio de 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 siguiente política de usuarios intermedios permite la mayoría de las acciones de EMR Studio y permite a los usuarios crear nuevos EMR clústeres de Amazon mediante una plantilla de clústeres.

importante

La política de ejemplo no incluye el CreateStudioPresignedUrl permiso, que debes conceder a un usuario cuando utilices el modo de IAM autenticación. Para obtener más información, consulte Asigne un usuario o un grupo a un EMR estudio.

La política de ejemplo incluye Condition elementos para aplicar el control de acceso basado en etiquetas (TBAC), de modo que se pueda utilizar la política con el rol de servicio de ejemplo para EMR Studio. Para obtener más información, consulte Cree un rol de servicio de 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 siguiente política de usuario avanzada permite todas las acciones de EMR Studio y permite a un usuario crear nuevos EMR clústeres de Amazon mediante una plantilla de clúster o proporcionando una configuración de clúster.

importante

La política de ejemplo no incluye el CreateStudioPresignedUrl permiso, que debes conceder a un usuario cuando utilices el modo de IAM autenticación. Para obtener más información, consulte Asigne un usuario o un grupo a un EMR estudio.

La política de ejemplo incluye Condition elementos para aplicar el control de acceso basado en etiquetas (TBAC), de modo que se pueda utilizar la política con el rol de servicio de ejemplo para EMR Studio. Para obtener más información, consulte Cree un rol de servicio de 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 siguiente política de usuario contiene los permisos de usuario mínimos necesarios para usar una aplicación interactiva EMR sin servidor con EMR Studio Workspaces.

En este ejemplo de política que tiene permisos de usuario para aplicaciones interactivas EMR sin servidor con EMR Studio, sustituya los marcadores de posición de serverless-runtime-role y emr-studio-service-role con el rol de servicio de EMR Studio y el rol de tiempo de ejecución de EMRServerless correctos.

{ "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 permisos para los usuarios de EMR Studio

En la siguiente tabla se incluyen todas las operaciones de Amazon EMR Studio que puede realizar un usuario y se enumeran las IAM acciones mínimas necesarias para realizar esa operación. Usted permite estas acciones en sus políticas de IAM permisos (cuando usa la IAM autenticación) o en las políticas de sesión de su rol de usuario (cuando usa la autenticación de IAM Identity Center) para EMR Studio.

En la tabla también se muestran las operaciones permitidas en cada uno de los ejemplos de políticas de permisos de EMR Studio. Para obtener más información acerca de las políticas de permisos de ejemplo, consulte Crea políticas de permisos para los usuarios de EMR Studio.

Acción Basic Intermedia Avanzado Acciones asociadas
Crear y eliminar espacios de trabajo
"elasticmapreduce:CreateEditor", "elasticmapreduce:DescribeEditor", "elasticmapreduce:ListEditors", "elasticmapreduce:DeleteEditor"
Consulte el panel Colaboración, habilite la colaboración en el espacio de trabajo y agregue a colaboradores. Para obtener más información, consulte Establecer la propiedad de la colaboración en el espacio de trabajo.
"elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities"
Consulta una lista de depósitos de Amazon S3 Control almacenamiento en la misma cuenta que Studio al crear un EMR clúster nuevo y accede a los registros del contenedor cuando utilices una interfaz de usuario web para depurar aplicaciones
"s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation", "s3:GetObject"
Acceder a los espacios de trabajo
"elasticmapreduce:DescribeEditor", "elasticmapreduce:ListEditors", "elasticmapreduce:StartEditor", "elasticmapreduce:StopEditor", "elasticmapreduce:OpenEditorInConsole"
Adjunta o separa los EMR clústeres de Amazon existentes asociados al espacio de trabajo
"elasticmapreduce:AttachEditor", "elasticmapreduce:DetachEditor", "elasticmapreduce:ListClusters", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:ListBootstrapActions"
Adjunta o separa Amazon EMR en clústeres EKS
"elasticmapreduce:AttachEditor", "elasticmapreduce:DetachEditor", "emr-containers:ListVirtualClusters", "emr-containers:DescribeVirtualCluster", "emr-containers:ListManagedEndpoints", "emr-containers:DescribeManagedEndpoint", "emr-containers:GetManagedEndpointSessionCredentials"
Adjunte o desconecte las aplicaciones EMR sin servidor asociadas al espacio de trabajo No
"elasticmapreduce:AttachEditor", "elasticmapreduce:DetachEditor", "emr-serverless:GetApplication", "emr-serverless:StartApplication", "emr-serverless:ListApplications", "emr-serverless:GetDashboardForJobRun", "emr-serverless:AccessInteractiveEndpoints", "iam:PassRole"

El PassRole permiso es necesario para pasar a la función de tiempo de ejecución de tareas EMR sin servidor. Para obtener más información, consulte Funciones en tiempo de ejecución de Job en la Guía del usuario de Amazon EMR Serverless.

Depure Amazon EMR en EC2 trabajos con interfaces de usuario de aplicaciones persistentes
"elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "elasticmapreduce:ListClusters", "elasticmapreduce:ListSteps", "elasticmapreduce:DescribeCluster", "s3:ListBucket", "s3:GetObject"
Depure Amazon EMR en EC2 trabajos con interfaces de usuario de aplicaciones integradas en el clúster
"elasticmapreduce:GetOnClusterAppUIPresignedURL"
Depura Amazon cuando se EMR ejecuta EKS un trabajo con el 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"
Crear y eliminar repositorios de Git
"elasticmapreduce:CreateRepository", "elasticmapreduce:DeleteRepository", "elasticmapreduce:ListRepositories", "elasticmapreduce:DescribeRepository", "secretsmanager:CreateSecret", "secretsmanager:ListSecrets", "secretsmanager:TagResource"
Vincular y desvincular repositorios de Git
"elasticmapreduce:LinkRepository", "elasticmapreduce:UnlinkRepository", "elasticmapreduce:ListRepositories", "elasticmapreduce:DescribeRepository"
Crear nuevos clústeres a partir de plantillas de clústeres predefinidas 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"
Brinde una configuración de clúster para crear nuevos clústeres. No No
"elasticmapreduce:RunJobFlow", "iam:PassRole", "elasticmapreduce:ListClusters", "elasticmapreduce:DescribeCluster"
Asigna un usuario a un estudio cuando utilices el modo de IAM autenticación. No No No
"elasticmapreduce:CreateStudioPresignedUrl"
Describir los objetos de la red.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DescribeNetwork", "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource": "*" } ] }
Enumere IAM los roles.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListIAMRoles", "Effect": "Allow", "Action": [ "iam:ListRoles" ], "Resource": "*" } ] }
Conéctese a EMR Studio desde Amazon SageMaker Studio y utilice la interfaz visual de Data Wrangler. No No
"sagemaker:CreatePresignedDomainUrl", "sagemaker:DescribeDomain", "sagemaker:ListDomains", "sagemaker:ListUserProfiles"
Usa Amazon CodeWhisperer en tu EMR estudio. No No
"codewhisperer:GenerateRecommendations"
Acceda al SQL editor de Amazon Athena desde su estudio. EMR Es posible que esta lista no incluya todos los permisos que necesita para usar todas las características de Athena. Para obtener la mayor parte up-to-date de la lista, consulte la política de acceso completo de 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"