は、実施例
// This prints the EC2 instance role and then the keys
void printCredentials() {
Map<String,EC2MetadataUtils.IAMSecurityCredential> credMap = EC2MetadataUtils.getIAMSecurityCredentials();
Iterator<Map.Entry<String,EC2MetadataUtils.IAMSecurityCredential>> it = credMap.entrySet().iterator();
while (it.hasNext()) {
// First print the role associated with this instance
Map.Entry<String,EC2MetadataUtils.IAMSecurityCredential> pair = (Map.Entry<String,EC2MetadataUtils.IAMSecurityCredential>)it.next();
System.out.println("Role: " + pair.getKey() + " = Value: " + pair.getValue());
// Next print the access key and secret key
EC2MetadataUtils.IAMSecurityCredential cred = pair.getValue();
System.out.println("Access key: " + cred.accessKeyId + ", Secret key: " + cred.secretAccessKey);
}
}
うーん、そのクラスには、これらのフィールドの任意のゲッターを持っていないようですか?どうすればそれらにアクセスできますか?たとえば、...私は単に標準出力に出力したいと思います。 – Anthony
FWIW、自分のコードが第三者のライブラリを使用してS3リソースにアクセスしているため、これらのライブラリにリソースにアクセスするためにaccesskeyとsecretkeyが必要なため、これらの資格情報にアクセスする必要があります。私の計画は、AWS SDKからそれらをフェッチし、サードパーティのライブラリにそれらを渡すことです。 – Anthony
@Anthony 'EC2MetadataUtils.getIAMSecurityCredentials()'を使用してください。適切な文書 –