AWS CDK v2.173.0 でデプロイ時に認証エラーになった件
CDKのバグを踏んだので記録に残しておきます。
(2週間前に修正されているの今更な内容ではあります。)
発生した問題
Amplify Gen2でSandbox環境を作ろうとして npx ampx sandbox
を実行したら以下のようなエラーが発生しました。
Setting "CDK_DEFAULT_REGION" environment variable to us-west-2
Unable to determine the default AWS account (CredentialsProviderError): UnauthorizedException: Session token not found or invalid
対策
CDK(2.173.0)が原因でした。最新のCDK(2.173.2)にバージョンアップしたら直りました。
発生した問題の詳細
該当のissue
事象を調べたらissueになっていました。
内容の概要
IAM Identity Centerを使ってCLIでログインしたときにsso-session
とprofile
のregionが異なる場合にエラーになる変更が、該当バージョンのCDKに入っていたようです。
実際に今回使った環境では以下のように異なるregionを使っていました。
[profile sandbox-us]
region = us-west-2
sso_session=ncdc-sso
sso_account_id=xxxxxxxx
sso_role_name=xxxRole
output = json
[sso-session ncdc-sso]
sso_region = us-east-1
sso_start_url = https://d-xxxxxxxxx.awsapps.com/start
この問題は、前述の通り既に修正されています。
気になったこと
不具合自体はすぐに修正されていましたし騒ぐような内容でもないのですが、issueのやり取り見る限りコーディング時に入り込んだバグとかではなくて、意図的にこの処理を入れたようなのですよね。つまり仕様バグ。
AWS IdCって組織単位で1つのregionにしか作れないので、profileとssoのregionを指定するって極めて普通のユースケースだと思うんですよね。レビューで止められなかったんですかね。すぐに修正されたとはいえ、そういうバグを含むものがリリースされちゃっているのはちょっと不安になります。
(クリスマスにバグを踏んで時間を無駄にしたので攻撃的になっています。)
NCDC株式会社( ncdc.co.jp/ )のエンジニアチームです。 募集中のエンジニアのポジションや、採用している技術スタックの紹介などはこちら( github.com/ncdcdev/recruitment )をご覧ください! ※エンジニア以外も記事を投稿することがあります
Discussion