Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

201
Views
Rol de AWS IAM en EC2 y acceso a S3 desde JupyterHub

En JupyterHub, instalado en una instancia EC2 con un rol de IAM que permite el acceso a un depósito S3 específico cuando intento acceder a un archivo en ese depósito con este código:

 s3nRdd = spark.sparkContext.textFile("s3n://bucket/file")

me sale este error:

IllegalArgumentException: u'AWS Access Key ID y Secret Access Key deben especificarse como nombre de usuario o contraseña (respectivamente) de una URL s3n, o configurando las propiedades fs.s3n.awsAccessKeyId o fs.s3n.awsSecretAccessKey (respectivamente).'

Sin embargo, cuando exporto la identificación de la clave de acceso de AWS y la clave de acceso secreta en la configuración del kernel que tiene la misma política que ese rol, la lectura de ese archivo se realiza correctamente.

Dado que la mejor práctica es utilizar roles de IAM, ¿por qué el rol de EC2 no funciona en esta situación?

--update-- El rol EC2 IAM tiene estas 2 políticas:

 { "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1488892557621", "Action": "s3:*", "Effect": "Allow", "Resource": [ "arn:aws:s3:::<bucket_name>", "arn:aws:s3:::<bucket_name>/*" ] } ] } { "Version": "2012-10-17", "Statement": [ { "Action": "ec2:*", "Effect": "Allow", "Resource": "*" }, { "Sid": "Stmt1480684159000", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "*" ] } ] }

Además, estoy usando la versión 2.4.0 de Hadoop, que no es compatible con el protocolo s3a y la actualización no es una opción.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Debe crear una política de depósito para permitir el acceso desde determinados roles de IAM. Dado que S3 no confía en los roles, la API simplemente retrocede y solicita la clave de acceso.

Simplemente agregue algo como esto en su política de depósito, reemplace todos los parámetros <> personalizados con sus propios valores.

 { "Version": "2012-10-17", "Id": "EC2IAMaccesss", "Statement": [{ "Sid": "MyAppIAMRolesAccess", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<acc_id>:role/<yourIAMroleName>" ] }, "Action": [ "s3:ListBucket", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::<yourbucket>/*", "arn:aws:s3:::<yourbucket>" ] } ] }

(actualizaciones)

  1. Asegúrese de proporcionar la política adecuada a los roles de IAM de EC2, ya que los roles de IAM son muy potentes, no se adjunta ninguna política de fábrica. Debe asignar una política, por ejemplo, para un acceso mínimo a S3, agregue la política AWSS3ReadOnly a los roles.

  2. Es posible que encuentre problemas de interacción problemática de chispa con roles de IAM . Consulte la documentación sobre el acceso a Spark a través del esquema s3n:// . De lo contrario, utilice s3a://

over 4 years ago · Santiago Trujillo Report

0

S3n no es compatible con los roles de IAM y, de todos modos, la 2.4 es una versión muy desactualizada. No tiene tantos errores como 2.5 cuando se trata de s3n, pero sigue siendo menos que perfecto.

Si desea utilizar roles de IAM, tendrá que cambiar a S3a, y sí, para usted, eso significa actualizar Hadoop. perdón.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!