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à.
Ruolo di servizio per le istanze del cluster (profilo EC2 dell'istanza) EC2
Il ruolo di servizio per EC2 le istanze di cluster (chiamato anche profilo di EC2 istanza per Amazon EMR) è un tipo speciale di ruolo di servizio assegnato a EC2 ogni istanza di un cluster Amazon EMR all'avvio dell'istanza. I processi delle applicazioni eseguite sull'ecosistema Hadoop presuppongono che questo ruolo per le autorizzazioni interagisca con altri servizi AWS .
Per ulteriori informazioni sui ruoli di servizio per EC2 le istanze, consulta Usare un ruolo IAM per concedere le autorizzazioni alle applicazioni in esecuzione su EC2 istanze Amazon nella IAM User Guide.
Importante
Il ruolo di servizio predefinito per EC2 le istanze di cluster e la politica gestita AWS predefinita associata AmazonElasticMapReduceforEC2Role
sono sulla via dell'obsolescenza e non sono previste politiche gestite sostitutive. AWS Sarà necessario creare e specificare un profilo di istanza per sostituire il ruolo obsoleto e la policy predefinita.
Ruolo predefinito e policy gestita
-
Il nome del ruolo predefinito è
EMR_EC2_DefaultRole
. -
Il supporto per la policy gestita da
EMR_EC2_DefaultRole
predefinita (AmazonElasticMapReduceforEC2Role
) è quasi al termine. Invece di utilizzare una policy gestita predefinita per il profilo dell' EC2 istanza, applica policy basate sulle risorse ai bucket S3 e ad altre risorse di cui Amazon EMR ha bisogno, oppure usa la tua policy gestita dal cliente con un ruolo IAM come profilo di istanza. Per ulteriori informazioni, consulta Creazione di un ruolo di servizio per le istanze di cluster con autorizzazioni con privilegi minimi EC2 .
Di seguito viene mostrato il contenuto della versione 3 di AmazonElasticMapReduceforEC2Role
.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": "*", "Action": [ "cloudwatch:*", "dynamodb:*", "ec2:Describe*", "elasticmapreduce:Describe*", "elasticmapreduce:ListBootstrapActions", "elasticmapreduce:ListClusters", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:ListInstances", "elasticmapreduce:ListSteps", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:MergeShards", "kinesis:PutRecord", "kinesis:SplitShard", "rds:Describe*", "s3:*", "sdb:*", "sns:*", "sqs:*", "glue:CreateDatabase", "glue:UpdateDatabase", "glue:DeleteDatabase", "glue:GetDatabase", "glue:GetDatabases", "glue:CreateTable", "glue:UpdateTable", "glue:DeleteTable", "glue:GetTable", "glue:GetTables", "glue:GetTableVersions", "glue:CreatePartition", "glue:BatchCreatePartition", "glue:UpdatePartition", "glue:DeletePartition", "glue:BatchDeletePartition", "glue:GetPartition", "glue:GetPartitions", "glue:BatchGetPartition", "glue:CreateUserDefinedFunction", "glue:UpdateUserDefinedFunction", "glue:DeleteUserDefinedFunction", "glue:GetUserDefinedFunction", "glue:GetUserDefinedFunctions" ] } ] }
Il tuo ruolo di servizio dovrebbe utilizzare la seguente policy di attendibilità:
{ "Version": "2008-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Creazione di un ruolo di servizio per le istanze di cluster con autorizzazioni con privilegi minimi EC2
Come procedura consigliata, consigliamo vivamente di creare un ruolo di servizio per le EC2 istanze del cluster e una politica di autorizzazioni che disponga delle autorizzazioni minime per gli altri servizi richiesti dall'applicazione. AWS
La policy gestita predefinita AmazonElasticMapReduceforEC2Role
offre le autorizzazioni che facilitano l'avvio del primo cluster. Tuttavia, AmazonElasticMapReduceforEC2Role
è sulla via dell'obsolescenza e Amazon EMR non fornirà una policy predefinita AWS gestita sostitutiva per il ruolo obsoleto. Per avviare un cluster iniziale, è necessario fornire una policy basata sulle risorse gestita dal cliente o basata su ID.
Le seguenti dichiarazioni di policy forniscono esempi di autorizzazioni richieste per differenti caratteristiche di Amazon EMR. È consigliabile utilizzare queste autorizzazioni per la creazione di una policy di autorizzazioni che limita l'accesso alle sole caratteristiche e risorse che richiede il cluster. Tutte le dichiarazioni politiche di esempio utilizzano la regione e l'ID dell'account fittizious-west-2
. AWS 123456789012
Sostituirli nel modo appropriato per il cluster.
Per ulteriori informazioni sulla creazione e sula specifica di ruoli personalizzati, consulta Personalizza i ruoli IAM con Amazon EMR.
Nota
Se crei un ruolo EMR personalizzato per EC2, segui il flusso di lavoro di base, che crea automaticamente un profilo di istanza con lo stesso nome. Amazon EC2 consente di creare profili e ruoli di istanza con nomi diversi, ma Amazon EMR non supporta questa configurazione e genera un errore di «profilo di istanza non valido» durante la creazione del cluster.
Lettura e scrittura di dati su Amazon S3 utilizzando EMRFS
Quando un'applicazione in esecuzione su un cluster Amazon EMR fa riferimento ai dati utilizzando il s3://
formato, Amazon EMR utilizza il profilo dell' EC2 istanza per effettuare la richiesta. I cluster in genere leggono e scrivono dati su Amazon S3 in questo modo e Amazon EMR utilizza per impostazione predefinita le autorizzazioni associate al ruolo di servizio per le istanze di cluster. EC2 Per ulteriori informazioni, consulta Configurazione di ruoli IAM per le richieste EMRFS ad Amazon S3.mydata
Poiché i ruoli IAM per EMRFS ricorreranno alle autorizzazioni associate al ruolo di servizio per le EC2 istanze di cluster, come best practice, consigliamo di utilizzare i ruoli IAM per EMRFS e di limitare le autorizzazioni EMRFS e Amazon S3 associate al ruolo di servizio per le istanze cluster. EC2
L'istruzione di esempio di seguito mostra le autorizzazioni che EMRFS richiede per effettuare le richieste ad Amazon S3.
-
my-data-bucket-in-s3-for-emrfs-reads-and-writes
specifica il bucket in Amazon S3 dove il cluster legge e scrive i dati e tutte le sottocartelle utilizzando/*
. Aggiungere solo i bucket e le cartelle necessari per la propria applicazione. -
La dichiarazione di policy che consente le azioni
dynamodb
è necessaria solo se è abilitata la visualizzazione coerente di EMRFS.EmrFSMetadata
specifica la cartella predefinita per la visualizzazione coerente di EMRFS.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:CreateBucket", "s3:DeleteObject", "s3:GetBucketVersioning", "s3:GetObject", "s3:GetObjectTagging", "s3:GetObjectVersion", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:ListBucketVersions", "s3:ListMultipartUploadParts", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::
my-data-bucket-in-s3-for-emrfs-reads-and-writes
", "arn:aws:s3:::my-data-bucket-in-s3-for-emrfs-reads-and-writes/*
" ] }, { "Effect": "Allow", "Action": [ "dynamodb:CreateTable", "dynamodb:BatchGetItem", "dynamodb:BatchWriteItem", "dynamodb:PutItem", "dynamodb:DescribeTable", "dynamodb:DeleteItem", "dynamodb:GetItem", "dynamodb:Scan", "dynamodb:Query", "dynamodb:UpdateItem", "dynamodb:DeleteTable", "dynamodb:UpdateTable" ], "Resource": "arn:aws:dynamodb:us-west-2
:123456789012
:table/EmrFSMetadata
" }, { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "dynamodb:ListTables", "s3:ListBucket" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "sqs:GetQueueUrl", "sqs:ReceiveMessage", "sqs:DeleteQueue", "sqs:SendMessage", "sqs:CreateQueue" ], "Resource": "arn:aws:sqs:us-west-2
:123456789012
:EMRFS-Inconsistency-*" } ] }
Archiviazione di file di log in Amazon S3
La seguente istruzione di policy consente al cluster Amazon EMR di archiviare i file di log nel percorso Amazon S3 specificato. Nell'esempio seguente, quando il cluster è stato creato, s3://MyLoggingBucket/MyEMRClusterLogs
è stato specificato utilizzando la posizione S3 della cartella Log nella console, utilizzando l'--log-uri
AWS CLI opzione from o utilizzando il LogUri
parametro nel RunJobFlow
comando. Per ulteriori informazioni, consulta Archiviazione di file di log in Amazon S3.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::
MyLoggingBucket/MyEMRClusterLogs
/*" } ] }
Utilizzo del AWS Glue Data Catalog
La seguente dichiarazione sulla politica consente le azioni necessarie se si utilizza il AWS Glue Data Catalog come metastore per le applicazioni. Per ulteriori informazioni, consulta Using the AWS Glue Data Catalog come metastore per Spark SQL, Using the AWS Glue Data Catalog come metastore per Hive e Using Presto with the Glue AWS Data Catalog nella Amazon EMR Release Guide.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:CreateDatabase", "glue:UpdateDatabase", "glue:DeleteDatabase", "glue:GetDatabase", "glue:GetDatabases", "glue:CreateTable", "glue:UpdateTable", "glue:DeleteTable", "glue:GetTable", "glue:GetTables", "glue:GetTableVersions", "glue:CreatePartition", "glue:BatchCreatePartition", "glue:UpdatePartition", "glue:DeletePartition", "glue:BatchDeletePartition", "glue:GetPartition", "glue:GetPartitions", "glue:BatchGetPartition", "glue:CreateUserDefinedFunction", "glue:UpdateUserDefinedFunction", "glue:DeleteUserDefinedFunction", "glue:GetUserDefinedFunction", "glue:GetUserDefinedFunctions" ], "Resource": "*", } ] }