我的EMR作業之一依賴於分別從fs.s3.awsAccessKeyId
和fs.s3.awsSecretAccessKey
屬性獲取AWS訪問密鑰ID和祕密訪問密鑰。但是,當我使用默認的EC2和EMR角色運行EMR羣集時,這些屬性不存在。fs.s3.awsAccessKeyId和fs.s3.awsSecretAccessKey未設置爲EMR默認IAM角色
如何在使用默認角色運行EMR羣集時看到這些訪問密鑰,看到在此時使用IAM角色是需求?我能做到的一個方法是自己明確地設置這些屬性,但我想看看我是否錯過了其他的東西。
我遇到的問題是我的EMR作業使用AmazonS3EncryptionClient,我需要用'AWSCredentials'對象初始化它,否則它會發出匿名請求。我還沒有找到一種方法來初始化只有IAM角色的'AWSCredentials',並且由於它是角色而不是用戶,所以我無法爲它生成訪問密鑰/密鑰。 –
您可以使用憑證提供程序使用其他構造函數嗎?請參閱http://docs.aws.amazon.com/AmazonS3/latest/dev/encrypt-client-side-asymmetric-master-key.html和http://docs.aws.amazon.com/AWSSdkDocsJava/latest// DeveloperGuide/credentials.html – ChristopherB
它看起來像我可以使用'DefaultAwsCredentialsProviderChain',因爲它似乎使用來自EC2的實例配置文件憑證。使用'InstanceProfileCredentialsProvider'也可以。 –