2016-04-24 4 views
0

Привет, У меня есть приложение, написанное на Scala (распределенная система - Spark), и мне нужно иметь доступ на чтение к моему ведро S3. У меня есть доступ к этому ведру через консоль AWS с использованием пользователя IAM, и я хочу получить временные учетные данные для этого ведра с помощью пользователя IAM. может кто-нибудь объяснить, как и если это возможно ..?Доступ к AWS S3 с временными учетными данными

Я видел этот учебник: http://docs.aws.amazon.com/AWSSdkDocsJava/latest/DeveloperGuide/prog-services-sts.html , но весь смысл использования временных учетных данных является то, что я не хочу, чтобы добавить учетные данные AWS в мой код, и это выглядит как AWSSecurityTokenServiceClient требует.

ответ

0

Если вы не хотите использовать свои учетные данные AWS в своем коде, вы можете использовать InstanceProfileCredentialsProvider. Если вы запускаете свой код из экземпляра ec2, вы можете получить временные учетные данные с теми же правами, что и с ролью IAM, связанной с экземпляром 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) 

или

def s3 = new AmazonS3Client(instanceProfileCredentialsProvider) 

Нажмите here для получения дополнительной информации.

Смежные вопросы