2016-04-24 20 views
0

こんにちは私はScala(分散システム - スパーク)で書かれたアプリケーションを持っていて、S3バケットへの読み取りアクセス権が必要です。 IAMユーザーを使用してAWSコンソールからこのバケットにアクセスでき、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をクリックします。

関連する問題