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]
}],
})