Back to Releases
v2.181.1 2025年2月28日

AWS CDK v2.181.1 リリース解説

Cognito Identity Pool Alpha モジュールにおける重大なデプロイ障害を修正したパッチリリース

cognitoidentity-pool

概要

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. 再デプロイの強制: リソースハッシュの変更により、既存スタックが再デプロイを要求される
  2. デプロイの失敗: 新しいロールアタッチメントが古いものの削除前に作成されようとし、1つのIdentity Poolにつき1つしかロールアタッチメントを持てないという制約に違反

修正内容

このリリースでは、IdentityPoolRoleAttachment L2コンストラクトのロジックを内部的に復元しました:

  • 後方互換性の維持: v2.179.0未満を使用しているユーザーの再デプロイを防止
  • 非公開化: コンストラクトはエクスポートされなくなり、直接使用による混乱を防止
  • デプロイ問題の解決: 正しい順序でリソースが作成・削除されるように修正

影響を受けるバージョン

  • v2.179.0以降でデプロイされた IdentityPool リソースは、このバージョンへのアップグレード時にデプロイが失敗します

移行手順

v2.179.0以降を使用している場合、以下の手順でアップグレードしてください:

  1. AWS コンソールでリソースを削除

    • AWS コンソールにログイン
    • Cognito サービスに移動
    • 該当する Identity Pool を選択
    • IdentityPoolRoleAttachment リソースを手動で削除
  2. CDK バージョンをアップグレード

    npm install aws-cdk@2.181.1
  3. スタックを再デプロイ

    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のロールアタッチメント管理が安定化され、既存スタックの安全な運用が保証されます。