Zenn
↕️

[Trusted Advisor]「Route 53 パブリックホストゾーンは DNS クエリをログ記録する必要があります」

2025/03/21に公開

表題対応手順

CDKで行おうと思い、API Refferenceを見てみました。

HostedZoneをCDK上で新規作成している場合、以下のように設定可能のようです。

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import { aws_route53 as route53 } from 'aws-cdk-lib';
const cfnHostedZone = new route53.CfnHostedZone(this, 'MyCfnHostedZone', /* all optional props */ {
  hostedZoneConfig: {
    comment: 'comment',
  },
  hostedZoneTags: [{
    key: 'key',
    value: 'value',
  }],
  name: 'name',
  queryLoggingConfig: {
    cloudWatchLogsLogGroupArn: 'cloudWatchLogsLogGroupArn',
  },
  vpcs: [{
    vpcId: 'vpcId',
    vpcRegion: 'vpcRegion',
  }],
});

CloudFormationのUserGuideの当該箇所は以下。
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-queryloggingconfig.html

fromLookup()で取得した既存Hosted Zoneに後からqueryLoggingConfigを追加する事は難しそう
(※補足①)なので、ロググループだけ作成し、今回はマネジメントコンソール上から設定してみます。

上記場合でも作成するロググループ自体はCDKで作成しておいてもOKです。
その際はus-east-1に作成する必要がある事にだけ注意ください。
(あとは、論理ID等で当該ロググループが何のために作成されているかコメントなりを付記しておかないと論理IDくらいでしか用途が読み取れないなという思いもあり)

※補足①:fromLookup()で取得している場合、既存のHostedZoneの情報(IDなど)だけをCDKに取り込んでいる為、CDK上にはL1ConstructであるCfnHostedZone作成されず、tree.jsonを見てaddOverideでqueryLoggingConfigを上書くというやり方が難しそうという認識。記事作成者の理解間違いの場合コメントからご教示いただけると嬉しいです。








無事にクエリログが蓄積されている事を確認しました。

以上でした。

有り難うございました。

Discussion

ログインするとコメントできます