Autorización del acceso a EMRFS los datos en Amazon S3 - 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.

Autorización del acceso a EMRFS los datos en Amazon S3

De forma predeterminada, la EMR función de EC2 determina los permisos de acceso a EMRFS los datos en Amazon S3. Las IAM políticas asociadas a este rol se aplican independientemente del usuario o grupo que realice la solicitudEMRFS. El valor predeterminado es EMR_EC2_DefaultRole. Para obtener más información, consulte Función de servicio para EC2 instancias de clúster (perfil de EC2 instancia).

A partir de la EMR versión 5.10.0 de Amazon, puede utilizar una configuración de seguridad para especificar las IAM funciones. EMRFS Esto le permite personalizar los permisos de EMRFS las solicitudes a Amazon S3 para los clústeres que tienen varios usuarios. Puede especificar diferentes IAM roles para distintos usuarios y grupos, y para diferentes ubicaciones de bucket de Amazon S3 en función del prefijo de Amazon S3. Cuando EMRFS realiza una solicitud a Amazon S3 que coincide con los usuarios, los grupos o las ubicaciones que especifique, el clúster utiliza la función correspondiente que especifique en lugar de la EMR función para la que usted especifiqueEC2. Para obtener más información, consulte Configurar IAM funciones para EMRFS solicitudes a Amazon S3.

Como alternativa, si su EMR solución de Amazon tiene exigencias que van más allá de las IAM funciones que EMRFS proporciona, puede definir una clase de proveedor de credenciales personalizada, que le permita personalizar el acceso a EMRFS los datos en Amazon S3.

Creación de un proveedor de credenciales personalizado para EMRFS los datos en Amazon S3

Para crear un proveedor de credenciales personalizado, debe implementar las clases configurables de Hadoop AWSCredentialsProvidery Hadoop.

Para obtener una explicación detallada de este enfoque, consulte Analizar de forma segura los datos de otra AWS cuenta EMRFS en el blog AWS Big Data. La entrada del blog incluye un tutorial que explica el procesoend-to-end, desde la creación de IAM roles hasta el lanzamiento del clúster. También proporciona un ejemplo de código Java que implementa la clase del proveedor de credenciales personalizado.

Los pasos básicos son los siguientes:

Para especificar un proveedor de credenciales personalizado
  1. Cree una clase de proveedor de credenciales personalizada compilada como un JAR archivo.

  2. Ejecute un script como acción de arranque para copiar el JAR archivo del proveedor de credenciales personalizadas en la /usr/share/aws/emr/emrfs/auxlib ubicación del nodo principal del clúster. Para obtener más información acerca de las acciones de arranque, consulte (Opcional) Crear acciones de arranque para instalar software adicional.

  3. Personalice la emrfs-site clasificación para especificar la clase que va a implementar en el JAR archivo. Para obtener más información sobre la especificación de objetos de configuración para personalizar las aplicaciones, consulte Configuración de aplicaciones en la Guía de EMR versiones de Amazon.

    En el siguiente ejemplo se muestra un comando create-cluster que lanza un clúster de Hive con parámetros de configuración comunes, y que también incluye:

    • Una acción de arranque que se ejecuta el script, copy_jar_file.sh, que se guarda en mybucket en Amazon S3.

    • emrfs-siteClasificación que especifica un proveedor de credenciales personalizadas definido en el JAR archivo como MyCustomCredentialsProvider

    nota

    Se incluyen caracteres de continuación de línea de Linux (\) para facilitar la lectura. Se pueden eliminar o utilizar en los comandos de Linux. En Windows, elimínelos o sustitúyalos por un signo de intercalación (^).

    aws emr create-cluster --applications Name=Hive \ --bootstrap-actions '[{"Path":"s3://mybucket/copy_jar_file.sh","Name":"Custom action"}]' \ --ec2-attributes '{"KeyName":"MyKeyPair","InstanceProfile":"EMR_EC2_DefaultRole",\ "SubnetId":"subnet-xxxxxxxx","EmrManagedSlaveSecurityGroup":"sg-xxxxxxxx",\ "EmrManagedMasterSecurityGroup":"sg-xxxxxxxx"}' \ --service-role EMR_DefaultRole_V2 --enable-debugging --release-label emr-7.2.0 \ --log-uri 's3n://my-emr-log-bucket/' --name 'test-awscredentialsprovider-emrfs' \ --instance-type=m5.xlarge --instance-count 3 \ --configurations '[{"Classification":"emrfs-site",\ "Properties":{"fs.s3.customAWSCredentialsProvider":"MyAWSCredentialsProviderWithUri"},\ "Configurations":[]}]'