AWS IAM アイデンティティセンター (AWS Single Sign-On の後継サービス) ユーザーの一時的な認証情報を取得したいと考えています。
簡単な説明
IAM アイデンティティセンターを使用するように名前付きプロファイルを設定すると、$ cd ~/.aws/sso/cache ディレクトリに JSON ファイルが作成されます。この JSON ファイルには、get-role-credentials API 呼び出しで一時的なセキュリティ認証情報を取得するために使用される JSON ウェブトークン (JWT) が含まれています。アクセストークンは、JSON ファイルの expiresAt タイムスタンプに示されているように 8 時間有効です。期限切れのトークンは、get-role-credentials API 呼び出しを使用して再認証する必要があります。
解決方法
AWS コマンドラインインターフェイス (AWS CLI) を使用して、IAM アイデンティティセンターユーザーの一時的な認証情報を取得できます。
注: 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"}
AWS CLI コマンド get-role-credentials を実行して、以下のような IAM アイデンティティセンターユーザーの認証情報を取得します。
$ 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>
出力例:
{
"roleCredentials": {
"accessKeyId": "ASIA*************”,
"secretAccessKey": “**********************************”,
"sessionToken": “****************************************”,
"expiration": 1592362463000
}
}
次に、指示に従って、認証情報を環境変数として設定します。
関連情報
IAM アイデンティティセンターアクセス許可セットを使用するにはどうすればよいですか?