🍗

AWS CDK v2.173.0 でデプロイ時に認証エラーになった件

2024/12/25に公開

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になっていました。
https://github.com/aws/aws-cdk/issues/32510

内容の概要

IAM Identity Centerを使ってCLIでログインしたときにsso-sessionprofileのregionが異なる場合にエラーになる変更が、該当バージョンのCDKに入っていたようです。

実際に今回使った環境では以下のように異なるregionを使っていました。

~/.aws/config
[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エンジニアブログ

Discussion