2016-04-24 7 views
0

Bonjour, J'ai une application écrite en Scala (système distribué - Spark) et j'ai besoin d'avoir un accès en lecture à mon seau S3. J'ai accès à ce compartiment via la console AWS à l'aide d'un utilisateur IAM et je souhaite obtenir des informations d'identification temporaires pour ce compartiment à l'aide de l'utilisateur IAM. quelqu'un peut-il expliquer comment ou si c'est possible ..?Accéder à AWS S3 avec des informations d'identification temporaires

Je l'ai vu ce tutoriel: http://docs.aws.amazon.com/AWSSdkDocsJava/latest/DeveloperGuide/prog-services-sts.html mais le point tout en utilisant les informations d'identification temporaire est que je ne veux pas ajouter les informations d'identification AWS à mon code, et il semble que AWSSecurityTokenServiceClient l'exige.

Répondre

0

Si vous ne souhaitez pas utiliser vos informations d'identification AWS dans votre code, vous pouvez utiliser InstanceProfileCredentialsProvider. Si vous exécutez votre code depuis une instance ec2, vous pouvez obtenir des informations d'identification temporaires qui ont les mêmes autorisations que celles associées au rôle IAM associé à l'instance EC2.

val instanceProfileCredentialsProvider = new com.amazonaws.auth.InstanceProfileCredentialsProvider() 
val credentials: AWSCredentials = instanceProfileCredentialsProvider.getCredentials 

hadoopConf.set("fs.s3a.awsAccessKeyId", credentials.getAWSAccessKeyId) 
hadoopConf.set("fs.s3a.awsSecretAccessKey", credentials.getAWSSecretKey) 

ou

def s3 = new AmazonS3Client(instanceProfileCredentialsProvider) 

Cliquez here pour plus d'informations.