CDK の CfnAssociation でハマったところ
AWS CDK (typescript) で AWS Managed MSAD を立てて、同一 CDK 内で SSM ステートマネージャーへのアソシエーションによって EC2 インスタンスをドメイン参加させようとしたのだが、
SSM の AWS-JoinDirectoryServiceDomain
ドキュメントに記載されている通りに parameter のうち directoryId
directoryName
の型を String
に合わせると、
CfnSynthesisError: Resolution error: Supplied properties not correct for "CfnAssociationProps" parameters: element 'directoryName': "corp.xxxxxxxxx.com" should be an 'object'.
というエラーが発生して Synthesis が通らなくてハマった。
下のように、当該の2つのパラメータを []
で囲んだら動くようになった。
const ad = new CfnMicrosoftAD(this, "MSAD", { name: "corp.xxxxxxxxx.com", edition: "Standard", password: "xxxxxxxxxxx", vpcSettings: { subnetIds: vpc.selectSubnets({ subnetType: SubnetType.PRIVATE_WITH_NAT }).subnetIds, vpcId: vpc.vpcId }, }); // ... 中略 new CfnAssociation(this, "SsmAssociation", { name: "AWS-JoinDirectoryServiceDomain", associationName: "JoinDomainFSxTestStack", parameters: { "directoryId": [ad.attrAlias], "dnsIpAddresses": ad.attrDnsIpAddresses, "directoryName": ["corp.xxxxxxxxx.com"] }, targets: [{ key: "InstanceIds", values: [ec2_instance.instanceId] }], })