Amazon Route53 解决方案构建库
本单元中更高层次的构件的API是实验性的并正在积极开发中. 在今后任何版本中,它们都须作非背向相容的修改或去除。 这些是 不适用 语义版本 模型和断开的更改 在发行笔记中宣布. 这意味着虽然你可能使用它们,但可能需要更新 当更新到此软件包的更新版本时,您的源代码.
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-lib/aws-ec2';
declare const ruleGroup: route53resolver.FirewallRuleGroup;
declare const myVpc: ec2.Vpc;
ruleGroup.associate('Association', {
priority: 101,
vpc: myVpc,
})