2016-04-24 217 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實例中運行代碼,則可以獲得與與EC2實例關聯的IAM角色相關的權限相同的臨時憑據。

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獲取更多信息。

相關問題