Amazon Route53 解决方案构建库
AWS CDK v1在2023-06-01上达到了支持结束. 此软件包不再更新,用户应该迁移到 AWS CDK v2.
关于如何移徙的更多信息,请参见: 移动到 AWS CDK v2 指南。 。 。 .
DNS 防火墙
路线53 解析器 DNS 防火墙,您可以过滤和调节 DNS 流量 虚拟私人连接(VPC). 要做到这一点,您创建可重复使用的过滤规则集 在DNS防火墙规则组中 将规则组与你的VPC联系起来.
DNS防火墙为您的 VPC 的出入境 DNS 请求提供保护. 这些请求的路线 用于域名解析。 DNS防火墙保护的主要用途是帮助 防止 DNS 过滤您的数据。 当一个坏角色妥协时, DNS 退出可能发生 您的 VPC 中的应用程序实例, 然后使用 DNS 搜索将数据从 VPC 发送到一个域 他们控制。 通过 DNS 防火墙,您可以监视和控制您的应用程序的域 可以查询。 您可以拒绝访问您所知的不良域, 并允许其它所有查询 通过。 另外,你可以拒绝所有域的进入,除了那些你 明确的信任.
域列表
域列表可以使用字符串列表、存储在亚马逊 S3 的文本文件或本地 文本文件 :
const blockList = new route53resolver.FirewallDomainList(this, 'BlockList', {
domains: route53resolver.FirewallDomains.fromList(['bad-domain.com', 'bot-domain.net']),
});
const s3List = new route53resolver.FirewallDomainList(this, 'S3List', {
domains: route53resolver.FirewallDomains.fromS3Url('s3://bucket/prefix/object'),
});
const assetList = new route53resolver.FirewallDomainList(this, 'AssetList', {
domains: route53resolver.FirewallDomains.fromAsset('/path/to/domains.txt'),
});
文件必须是文本文件,每行必须包含一个单一域.
使用 FirewallDomainList.fromFirewallDomainListId() 以导入现有或 AWS 管理域列表数字 :
// AWSManagedDomainsMalwareDomainList in us-east-1
const malwareList = route53resolver.FirewallDomainList.fromFirewallDomainListId(
this,
'Malware',
'rslvr-fdl-2c46f2ecbfec4dcc',
);
规则组
创建规则组 :
declare const myBlockList: route53resolver.FirewallDomainList;
new route53resolver.FirewallRuleGroup(this, 'RuleGroup', {
rules: [
{
priority: 10,
firewallDomainList: myBlockList,
// block and reply with NODATA
action: route53resolver.FirewallRuleAction.block(),
},
],
});
规则可在施工时添加或使用 addRule()数字 :
declare const myBlockList: route53resolver.FirewallDomainList;
declare const ruleGroup: route53resolver.FirewallRuleGroup;
ruleGroup.addRule({
priority: 10,
firewallDomainList: myBlockList,
// block and reply with NXDOMAIN
action: route53resolver.FirewallRuleAction.block(route53resolver.DnsBlockResponse.nxDomain()),
});
ruleGroup.addRule({
priority: 20,
firewallDomainList: myBlockList,
// block and override DNS response with a custom domain
action: route53resolver.FirewallRuleAction.block(route53resolver.DnsBlockResponse.override('amazon.com')),
});
使用 associate() 将规则组与VPC联系起来:
import * as ec2 from '@aws-cdk/aws-ec2';
declare const ruleGroup: route53resolver.FirewallRuleGroup;
declare const myVpc: ec2.Vpc;
ruleGroup.associate('Association', {
priority: 101,
vpc: myVpc,
})