web-dev-qa-db-ja.com

AWS STS Get-Session-Tokenはプロファイルで失敗します

S3にアップロードするツールを使用するために環境変数を設定するためにセッショントークンを取得しようとしていますが、AWSプロファイルを直接サポートしていません。

_aws sts get-session-token --profile myprofile
Enter MFA code for arn:aws:iam::1234567890:mfa/myid:

An error occurred (AccessDenied) when calling the GetSessionToken operation: 
Cannot call GetSessionToken with session credentials
_

後続の呼び出しはMFAチェックをスキップし、それがOKを渡したことを示します。

_get-session-token--profile_パラメータを実行する_$ aws sts get-session-token { "Credentials": { ... _の実行:

_~/.aws/config_

何が悪いのでしょうか。私もこの正しい方法についてさえありますか?

私の__(somebode)の関連部分__:

_[profile otherprofile]
mfa_serial=arn:aws:iam::xxx:mfa/myid
aws_access_key_id=xxx
aws_secret_access_key=xxx

[profile myprofile]
source_profile=otherprofile
region=ap-southeast-2
role_arn=arn:aws:iam::xxx:role/owner
mfa_serial=arn:aws:iam::xxx:mfa/myid
_
7
Steve Bennett

初期通話はIAMの役割を使用しています。一時的な資格情報を返すであろうget-session-tokenを呼び出すことを試みています。

ただし、IAMの役割が使用されている場合、AWS CLIは通常の認証情報を自動的に使用してassume-roleを呼び出し、それによって一時資格情報のセットを受け取ります。 (ロールから)一時的な信任状を持つget-session-tokenを呼び出すことはできません。これが、エラーメッセージがCannot call GetSessionToken with session credentialsにある理由です。

あなたがあなたがあなたの2番目の例で行ったように、get-session-tokenを呼び出したい場合は、あなたはあなたの通常の資格情報を使ってそれをする必要があります。

4
John Rotenstein