View a markdown version of this page

Configuración de roles de IAM - 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.

Configuración de roles de IAM

La CloudFormation pila de instrucciones de configuración automatiza la configuración de los roles de IAM por usted. Si desea ejecutarlo manualmente, siga las instrucciones que aparecen a continuación:

Configuración del rol de IAM para el servidor MCP

El próximo cambio entrará en vigor el 29 de mayo de 2026

Los sagemaker-unified-studio-mcp permisos que se muestran a continuación dejarán de ser necesarios después del 29 de mayo de 2026. En cambio, la autorización se realizará a nivel AWS de servicio utilizando sus políticas de IAM existentes. Si utilizas estos permisos para denegar el acceso, actualiza Próximo cambio de permisos (29 de mayo de 2026) tus políticas antes de esa fecha.

Para acceder al servidor MCP gestionado por SMUS, se requiere un rol de IAM con la siguiente política en línea:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowUseSagemakerUnifiedStudioMcpServer", "Effect": "Allow", "Action": [ "sagemaker-unified-studio-mcp:InvokeMcp", "sagemaker-unified-studio-mcp:CallReadOnlyTool", "sagemaker-unified-studio-mcp:CallPrivilegedTool" ], "Resource": [ "*" ] } ] }

En los siguientes pasos, crearemos un perfil para este rol. La cuenta que asuma este rol para obtener las credenciales debe agregarse a la política de asumir el rol.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccountToAssumeRole", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<accountId>:root" }, "Action": "sts:AssumeRole" } ] }

Permisos adicionales por modo de implementación (EMR-EC2/EMR-S/Glue)

EMR-EC2 Aplicaciones

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EMREC2ReadAccess", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:DescribeStep", "elasticmapreduce:ListSteps", "elasticmapreduce:ListClusters", "elasticmapreduce:DescribeJobFlows" ], "Resource": [ "*" ] }, { "Sid": "EMRS3LogAccess", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": "*" }, { "Sid": "EMRPersistentApp", "Effect": "Allow", "Action": [ "elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL" ], "Resource": [ "*" ] } ] }

Trabajos de Glue

{ "Version": "2012-10-17", "Statement": [ { "Sid": "GlueReadAccess", "Effect": "Allow", "Action": [ "glue:GetJob", "glue:GetJobRun", "glue:GetJobRuns", "glue:GetJobs", "glue:BatchGetJobs" ], "Resource": [ "arn:aws:glue:*:<account id>:job/*" ] }, { "Sid": "GlueCloudWatchLogsAccess", "Effect": "Allow", "Action": [ "logs:GetLogEvents", "logs:FilterLogEvents" ], "Resource": [ "arn:aws:logs:*:<account id>:log-group:/aws/glue/*" ] }, { "Sid": "GlueSparkWebUI", "Effect": "Allow", "Action": [ "glue:RequestLogParsing", "glue:GetLogParsingStatus", "glue:GetEnvironment", "glue:GetStage", "glue:GetStages", "glue:GetStageFiles", "glue:BatchGetStageFiles", "glue:GetStageAttempt", "glue:GetStageAttemptTaskList", "glue:GetStageAttemptTaskSummary", "glue:GetExecutors", "glue:GetExecutorsThreads", "glue:GetStorage", "glue:GetStorageUnit", "glue:GetQueries", "glue:GetQuery", "glue:GetDashboardUrl" ], "Resource": [ "arn:aws:glue:*:<account id>:job/*" ] }, { "Sid": "GluePassRoleAccess", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringLike": { "iam:PassedToService": "glue.amazonaws.com" } } } ] }

Aplicaciones EMR sin servidor

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EMRServerlessReadAccess", "Effect": "Allow", "Action": [ "emr-serverless:GetJobRun", "emr-serverless:GetApplication", "emr-serverless:ListApplications", "emr-serverless:ListJobRuns", "emr-serverless:ListJobRunAttempts", "emr-serverless:GetDashboardForJobRun", "emr-serverless:ListTagsForResource" ], "Resource": [ "*" ] }, { "Sid": "EMRServerlessCloudWatchLogsAccess", "Effect": "Allow", "Action": [ "logs:GetLogEvents", "logs:FilterLogEvents" ], "Resource": [ "arn:aws:logs:*:<account id>:log-group:/aws/emr-serverless/*" ] }, { "Sid": "EMRServerlessS3LogsAccess", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": "*" } ] }

Permisos de KMS: registros CloudWatch

Si los CloudWatch registros están cifrados con una CMK, añada la siguiente política para que el servicio pueda leer los registros de la EMR-Serverless aplicación.

{ "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "arn:aws:kms:<region>:<account-id>:key/<cw-logs-cmk-id>" }

Próximo cambio de permisos (29 de mayo de 2026)

A partir del 29 de mayo de 2026, el servidor MCP de AWS SMUS ya no necesitará permisos de IAM independientes para autorizar las operaciones del servidor MCP. En su lugar, la autorización se realizará a nivel de AWS servicio utilizando sus funciones y políticas de IAM actuales.

Se añadirán automáticamente dos claves de condición a todas las solicitudes realizadas a través del servidor MCP de SMUS:

  • aws:ViaAWSMCPService— Se configura true para cualquier solicitud realizada a través de un servidor MCP AWS gestionado.

  • aws:CalledViaAWSMCP— Se establece como principal de servicio del servidor MCP (por ejemplo,sagemaker-unified-studio-mcp.amazonaws.com).

Si actualmente utilizas sagemaker-unified-studio-mcp los permisos para denegar el acceso al servidor MCP de SMUS, o si no quieres permitir en tu cuenta ninguna acción iniciada por un servidor MCP AWS gestionado, debes actualizar tus políticas antes del 29 de mayo de 2026. En su lugar, utilice las nuevas claves de condición.

Denegue todas las operaciones a través de cualquier servidor MCP AWS administrado:

{ "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "Bool": { "aws:ViaAWSMCPService": "true" } } }

Denegue operaciones específicas a través de un servidor MCP AWS administrado específico:

{ "Effect": "Deny", "Action": ["glue:GetJobRun", "glue:StartJobRun"], "Resource": "*", "Condition": { "StringEquals": { "aws:CalledViaAWSMCP": "sagemaker-unified-studio-mcp.amazonaws.com" } } }

Para obtener más información sobre las claves de condición, consulte las claves de contexto de condición AWS globales en la Guía del usuario de IAM.