AWS IAM アイデンティティセンターのユーザーの一時的な認証情報を取得したいです。
簡単な説明
一時的な認証情報を生成するには、get-role-credentials コマンドを実行する必要があります。IAM Identity Center を使用するための名前付きプロファイルを構成すると、AWS コマンドラインインターフェイス (AWS CLI) は cd ~/.aws/sso/cache ディレクトリ内に JSON ファイルを作成します。この JSON ファイルには、get-role-credentials コマンドで一時セキュリティ認証情報を取得する際に使用する JSON ウェブトークン (JWT) が含まれます。アクセストークンは 8 時間有効です。JSON ファイルの expiresAt タイムスタンプは、有効期限を示します。
解決策
注: AWS CLI のコマンドの実行時にエラーが発生する場合は、「AWS CLI でのエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
一時認証情報を取得する
次の手順を実行します。
-
次の JSON ファイルを開き、アクセストークンを見つけます。
cat 535a8450b05870c9045c8a7b95870.json
{"startUrl": "https://my-sso-portal.awsapps.com/start", "region": "us-east-1", "accessToken": "eyJlbmMiOiJBM….", "expiresAt": "2020-06-17T10:02:08UTC"}
-
accessToken の値をコピーします。
-
次の get-role-credentials コマンドを実行して Identity Center ユーザーの認証情報を取得します。
aws sso get-role-credentials --account-id 123456789012 --role-name permission-set-name --access-token eyJlbmMiOiJBM…. --region enter_the_same_sso_region_same_in_the_JSON_file
注: enter_the_same_sso_region_same_in_the_JSON_file を JSON ファイル内の AWS リージョンに、permission-set-name をロール名に置き換えてください。ロール名に誤りがある場合、次のエラーが発生します: "An error occurred (ForbiddenException) when calling the GetRoleCredentials operation: No access." セッショントークンまたはリージョンが JSON ファイルの出力と一致しない場合、次のエラーが発生します: "An error occurred (UnauthorizedException) when calling the GetRoleCredentials operation: Session token not found or invalid."
出力例:
{ "roleCredentials": {
"accessKeyId": "ASIA*************",
"secretAccessKey": "**********************************",
"sessionToken": "****************************************",
"expiration": 1592362463000
}
}
-
認証情報を環境変数として設定します。
関連情報
IAM アイデンティティセンターのアクセス権限セットを使用するにはどうすればよいですか?