2016-07-29 29 views
1

ドキュメントAWS STS AssumeRole:IAMユーザーの資格情報は必要ですか?

documentation hereを競合、AssumeRoleに関連する、一つの連続ブロック自体に矛盾するよう:

既存のIAMユーザーの資格情報を使用して、このAPIを呼び出す必要があります。 の詳細については、IAM への権限の委任の役割の作成とMFA保護APIアクセスの設定を参照してください。

これはアプリが電話をかけるために、すべてのAWSのセキュリティ資格情報へ のアクセスを持っている必要はありませんことを意味し、符号なしの呼び出しです。

矛盾は、の太字が与えられている。

コードサンプル

code sample provided hereは確かに資格証明書を必要としているようだ:

AmazonSecurityTokenServiceClient securityTokenServiceClient = new AmazonSecurityTokenServiceClient(
    Config.AccessKey, 
    secretKeyAsString, 
    securityTokenServiceConfig); 

...

AssumeRoleRequest assumeRoleRequest = new AssumeRoleRequest 
{ 
    DurationSeconds = sessionDurationSec, 
    RoleArn = roleArn, 
    RoleSessionName = awsUsername, 
    ExternalId = groupSid 
}; 

を...

assumeRoleResponse = securityTokenServiceClient.AssumeRole(assumeRoleRequest); 

結論として

これは本当ですか?コードサンプルのリクエストは本当に冗長ですか?

ありがとうございました!

答えて

2

AssumeRole APIコールには、既存のAWS資格情報が必要です。

IAMの役割を担うには、誰がその役割を担っているかをAWSが知るように、既存の資格情報のセットを使用する必要があります。これは、AWSが想定元がその役割を引き受けることが許可されていることを確認できるようにするためです。ドキュメントで

このアプリは、通話を行うために、すべてのAWSのセキュリティ資格情報へのアクセスを必要としないことを意味し、符号なしの呼び出しです。

これは間違った情報です。

1

これは実際に修正中のドキュメントのエラーです。 AssumeRoleには、既存の長期(IAMユーザー)またはテンポラリクレデンシャルのクレデンシャルが必要です。 AssumeRoleWithSAMLとAssumeRoleWithWebIdentityは資格情報なしで呼び出すことができます。混乱させて申し訳ありません!

関連する問題