Back to Releases
AWS CDK 2026年3月11日

AWS CDK v2.243.0 リリース解説

cfn-property-mixinsが安定版パッケージに昇格、EKS CapabilityとALBのvendedLogs追加、DynamoDBのインデックスARN問題が修正されました。

概要

AWS CDK v2.243.0では、@aws-cdk/cfn-property-mixinsが安定版パッケージとして正式にリリースされました。また、L1 CloudFormationリソース定義が更新され、EKS CapabilityとELBv2 LoadBalancerにvendedLogs設定が追加されています。DynamoDBでは、インデックス追加後のリソースポリシーにインデックスARNが含まれない問題が修正されました。

新機能

cfn-property-mixins: 安定版パッケージに昇格 (#37215)

CFNプロパティMixin機能が@aws-cdk/mixins-previewから@aws-cdk/cfn-property-mixinsとして安定版パッケージに昇格しました。すべてのCloudFormationリソースに対応するプロパティMixinクラスを提供します。

// 新しいインポートパス(安定版)
import { CfnBucketPropsMixin } from '@aws-cdk/cfn-property-mixins/aws-s3';
import { CfnFunctionPropsMixin } from '@aws-cdk/cfn-property-mixins/aws-lambda';
import { CfnTablePropsMixin } from '@aws-cdk/cfn-property-mixins/aws-dynamodb';

主な特徴:

特徴説明
パッケージ名@aws-cdk/cfn-property-mixins
モジュール構造aws-cdk-libと同じ構造(例:/aws-s3, /aws-lambda
マージ戦略IMergeStrategyPropertyMergeStrategyaws-cdk-lib/coreからインポート

使用例:

import * as s3 from 'aws-cdk-lib/aws-s3';
import { PropertyMergeStrategy } from 'aws-cdk-lib';
import { CfnBucketPropsMixin } from '@aws-cdk/cfn-property-mixins/aws-s3';

const bucket = new s3.CfnBucket(this, 'Bucket');

// Mixinを使用してプロパティを適用
const mixin = new CfnBucketPropsMixin({
  versioningConfiguration: {
    status: 'Enabled',           // バージョニングを有効化
  },
  publicAccessBlockConfiguration: {
    blockPublicAcls: true,       // パブリックACLをブロック
    blockPublicPolicy: true,     // パブリックポリシーをブロック
    ignorePublicAcls: true,      // パブリックACLを無視
    restrictPublicBuckets: true, // パブリックバケットを制限
  },
}, {
  strategy: PropertyMergeStrategy.combine(),  // 深いマージ(デフォルト)
});

mixin.applyTo(bucket);

移行ガイド:

// 移行前(プレビュー版)
import { CfnS3BucketProps } from '@aws-cdk/mixins-preview';

// 移行後(安定版)
import { CfnBucketPropsMixin } from '@aws-cdk/cfn-property-mixins/aws-s3';

L1 CloudFormationリソース定義の更新 (#37201)

最新のAWS CloudFormationリソース仕様に基づいてL1コンストラクトが更新されました。

EKS Capability: vendedLogs の追加

AWS::EKS::CapabilityリソースにvendedLogs設定が追加されました。以下のログタイプがサポートされています:

ログタイプ説明
EKS_CAPABILITY_ACK_S3_LOGSACK(AWS Controllers for Kubernetes)S3コントローラーのログ
EKS_CAPABILITY_ARGOCD_APPLICATION_LOGSArgoCD アプリケーションログ
EKS_CAPABILITY_KRO_LOGSKRO(Kubernetes Resource Orchestrator)ログ

各ログタイプで以下の出力先がサポートされています:

  • S3(json, plain, w3c, parquet形式)
  • CloudWatch Logs(plain, json形式)
  • Firehose(json, plain, raw形式)

ELBv2 LoadBalancer: vendedLogs の追加

AWS::ElasticLoadBalancingV2::LoadBalancerリソースにALB用のvendedLogs設定が追加されました:

ログタイプ説明
ALB_ACCESS_LOGSALBアクセスログ
ALB_CONNECTION_LOGSALB接続ログ(TLSハンドシェイク情報を含む)
ALB_HEALTH_CHECK_LOGSALBヘルスチェックログ

バグ修正

DynamoDB: インデックス追加後のリソースポリシーにインデックスARNが含まれない問題を修正 (#37213)

DynamoDBテーブルで、グローバルセカンダリインデックス(GSI)を追加する前にパーミッションを付与すると、生成されるポリシードキュメントにインデックスのARNが含まれない問題が修正されました。

修正前の問題:

import * as dynamodb from 'aws-cdk-lib/aws-dynamodb';
import * as iam from 'aws-cdk-lib/aws-iam';

const table = new dynamodb.Table(this, 'Table', {
  partitionKey: { name: 'pk', type: dynamodb.AttributeType.STRING },
});

// 問題: この順序だとインデックスARNがポリシーに含まれない
table.grantReadWriteData(new iam.ServicePrincipal('lambda.amazonaws.com'));

table.addGlobalSecondaryIndex({
  indexName: 'GSI1',
  partitionKey: { name: 'gsi1pk', type: dynamodb.AttributeType.STRING },
});

修正前は、grantReadWriteDataが呼び出された時点でARNが計算されていたため、後から追加されたインデックスのARNがポリシーに含まれませんでした。

修正後:

TableGrants内のARN計算が遅延評価(lazy evaluation)に変更され、呼び出し順序に関係なくすべてのインデックスARNがポリシーに正しく含まれるようになりました。

import * as dynamodb from 'aws-cdk-lib/aws-dynamodb';
import * as iam from 'aws-cdk-lib/aws-iam';

const table = new dynamodb.Table(this, 'Table', {
  partitionKey: { name: 'pk', type: dynamodb.AttributeType.STRING },
});

// 修正後: どちらの順序でも正しく動作
// パターン1: 先にgrant
table.grantReadWriteData(new iam.ServicePrincipal('lambda.amazonaws.com'));

table.addGlobalSecondaryIndex({
  indexName: 'GSI1',
  partitionKey: { name: 'gsi1pk', type: dynamodb.AttributeType.STRING },
});

// パターン2: 先にインデックス追加(従来通り動作)
table.addGlobalSecondaryIndex({
  indexName: 'GSI2',
  partitionKey: { name: 'gsi2pk', type: dynamodb.AttributeType.STRING },
});

table.grantReadWriteData(new iam.ServicePrincipal('another-service.amazonaws.com'));

どちらのパターンでも、生成されるIAMポリシーにはテーブルARNとすべてのインデックスARNが正しく含まれます。

Alphaモジュール (2.243.0-alpha.0)

このリリースではAlphaモジュールに特筆すべき変更はありません。

まとめ

AWS CDK v2.243.0は、cfn-property-mixinsの安定版リリースDynamoDBのインデックスARN問題の修正が主な内容です。

主なポイント:

  • cfn-property-mixins安定版: @aws-cdk/mixins-previewから@aws-cdk/cfn-property-mixinsに移行し、正式サポートされました
  • EKS/ALB vendedLogs: CloudFormationリソース定義の更新により、EKS CapabilityとALBで詳細なログ設定が可能に
  • DynamoDBバグ修正: インデックス追加とパーミッション付与の順序に関係なく、正しいポリシーが生成されるようになりました

アップグレード時の注意:

  • @aws-cdk/mixins-previewを使用している場合は、@aws-cdk/cfn-property-mixinsへの移行を検討してください