概要
AWS CDK v2.181.1 は、Cognito Identity Pool Alpha モジュールにおける重大なバグを修正したパッチリリースです。v2.179.0以降でデプロイに失敗する問題を解決し、既存スタックの安全な再デプロイを可能にします。
Alphaモジュールの変更
⚠️ 破壊的変更
cognito-identitypool-alpha: v2.179.0以降でデプロイされた IdentityPool リソースは、このバージョンへのアップグレード時に特別な対応が必要です。
バグ修正
Cognito Identity Pool のデプロイ障害を修正 (#33609)
問題の背景
v2.179.0で実施された変更(PR #33305)により、IdentityPoolRoleAttachment L2コンストラクトが削除されました。この変更により、IdentityPool のデフォルトロールアタッチメントの作成ロジックが変更され、以下の問題が発生していました:
- 再デプロイの強制: リソースハッシュの変更により、既存スタックが再デプロイを要求される
- デプロイの失敗: 新しいロールアタッチメントが古いものの削除前に作成されようとし、1つのIdentity Poolにつき1つしかロールアタッチメントを持てないという制約に違反
修正内容
このリリースでは、IdentityPoolRoleAttachment L2コンストラクトのロジックを内部的に復元しました:
- 後方互換性の維持: v2.179.0未満を使用しているユーザーの再デプロイを防止
- 非公開化: コンストラクトはエクスポートされなくなり、直接使用による混乱を防止
- デプロイ問題の解決: 正しい順序でリソースが作成・削除されるように修正
影響を受けるバージョン
- v2.179.0以降でデプロイされた
IdentityPoolリソースは、このバージョンへのアップグレード時にデプロイが失敗します
移行手順
v2.179.0以降を使用している場合、以下の手順でアップグレードしてください:
-
AWS コンソールでリソースを削除
- AWS コンソールにログイン
- Cognito サービスに移動
- 該当する Identity Pool を選択
IdentityPoolRoleAttachmentリソースを手動で削除
-
CDK バージョンをアップグレード
npm install aws-cdk@2.181.1 -
スタックを再デプロイ
cdk deploy
コード例(影響なし)
既存のコードを変更する必要はありません。IdentityPool の使用方法は変わりません:
import * as cognito from '@aws-cdk/aws-cognito-identitypool-alpha';
import * as iam from 'aws-cdk-lib/aws-iam';
const identityPool = new cognito.IdentityPool(this, 'IdentityPool', {
// 認証済みユーザーのロール(既存の設定がそのまま動作)
authenticatedRole: new iam.Role(this, 'AuthRole', {
assumedBy: new iam.FederatedPrincipal(
'cognito-identity.amazonaws.com',
{
StringEquals: {
'cognito-identity.amazonaws.com:aud': identityPool.identityPoolId,
},
'ForAnyValue:StringLike': {
'cognito-identity.amazonaws.com:amr': 'authenticated',
},
},
'sts:AssumeRoleWithWebIdentity'
),
}),
// 未認証ユーザーのロール
unauthenticatedRole: new iam.Role(this, 'UnauthRole', {
assumedBy: new iam.FederatedPrincipal(
'cognito-identity.amazonaws.com',
{
StringEquals: {
'cognito-identity.amazonaws.com:aud': identityPool.identityPoolId,
},
'ForAnyValue:StringLike': {
'cognito-identity.amazonaws.com:amr': 'unauthenticated',
},
},
'sts:AssumeRoleWithWebIdentity'
),
}),
});
関連リンク
まとめ
AWS CDK v2.181.1 は、Cognito Identity Pool Alpha モジュールの重大なデプロイ障害を修正した重要なパッチリリースです。v2.179.0以降を使用している場合は、移行手順に従って慎重にアップグレードしてください。v2.178.0以前を使用している場合は、通常通りアップグレード可能です。
このリリースにより、Identity Poolのロールアタッチメント管理が安定化され、既存スタックの安全な運用が保証されます。