如何通过 F5 分布式云快速在亚马逊云科技构建 Edge Security Edition

亚马逊云科技 VPC 站点部署类型


可以以三种不同的模式部署站点:

1

Ingress Gateway(一个接口)

在这种部署模式下,站点连接到单个 VPC 和单个子网。它可以提供从该子网到客户租户中配置的任何其他站点可访问的服务和端点的发现。

2

Ingress/Egress Gateway(两个接口)

在这种部署模式下,站点连接到一个 VPC,在不同的子网上至少有两个接口。一个子网标记为 Outside,另一个子网标记为 Inside。在这种模式下,站点通过 Site Inside 接口通过默认网关为 VM 和子网提供安全性和连接性

3

F5分布式云应用堆栈集群(App Stack)(一个接口)

本站点的 F5 分布式云网格(Mesh)部署和配置与 Ingress Gateway(一个接口)相同。此部署的不同之处在于认证硬件类型为aws-byol-voltstack-combo.这将配置和部署一个实例类型,允许站点拥有 Kubernetes Pod 和使用 Virtual K8s 部署的 VM。

*Virtual K8s:https://docs.cloud.f5.com/docs/how-to/app-management/vk8s-deployment

入口网关(一个接口)


在这种部署模式下,F5 分布式云网格(Mesh)需要附加一个接口。在节点上运行的服务使用此接口连接到 Internet。此外,此接口用于发现其他服务和虚拟机,并将它们公开给同一租户中的其他站点。例如,在下图中,可以通过反向代理远程发现和公开 DevOps 或 Dev EC2 实例上的 TCP 或 HTTP 服务。


如下图所示,该接口位于与默认路由指向互联网网关的 VPC 主路由表关联的外部子网上。这就是来自外部接口的流量以及与此路由表对象关联的其他子网如何到达互联网的方式。对于其他子网(例如,Dev 和 DevOps),它们与 VPC 主路由表相关联。这意味着此 VPC 中任何新创建的子网都会自动与此路由表关联。


图:亚马逊云科技 VPC 站点部署 - 入口网关(一个接口)


入口/出口网关(两个接口)


在此部署场景中,Mesh 节点需要连接两个接口。第一个接口是外部接口,节点上运行的服务可以通过该接口连接到互联网。第二个接口是内部接口,它将成为私有子网中所有应用工作负载和服务的默认网关 IP 地址。


如下图所示,外部接口位于外部子网,与外部子网路由表相关联,其默认路由指向互联网网关。这就是来自外部接口的流量如何到达互联网的方式。对于内部子网,这些与内部子网路由表相关联,该路由表也是此 VPC 的主路由表。这意味着此 VPC 中任何新创建的子网都会自动与内部子网路由表关联。这个私有子网路由表有一个默认路由指向 Mesh 节点的内部 IP 地址 (192.168.32.186)。



一但 Mesh 站点上线,节点的内部网络将通过外部接口上启用的转发代理和 SNAT 连接到外部网络。这样,来自内部接口的所有流量都将通过转发代理转发到 Internet,并且 SNAT 发生在外部接口上。现在私有子网上的所有工作负载都可以通过 Mesh 站点到达 Internet。


APP Stack集群(一个接口)


就站点网络和转发/安全的配置方式而言,此方案与 Ingress Gateway(一个接口)相同。除此之外,还提供了 App Stack(分布式应用管理平台)。


在这种部署场景中,Mesh 需要附加一个接口。在节点上运行的服务使用此接口连接到 Internet。此外,此接口用于发现其他服务和虚拟机,并将它们公开给同一租户中的其他站点。例如,在下图中,可以通过反向代理远程发现和公开 DevOps 或 Dev EC2 实例上的 TCP 或 HTTP 服务。


如果在 vK8s 集群中进行配置,则可以将应用部署到该站点的 App Stack 产品中。站点的 App Stack 的服务/pods 可以暴露给 VPC 路由表上的其他服务和虚拟机;或通过 EIP(公网IP) 或应用交付网络 (ADN) 在外部提供。


如下图所示,该接口位于与默认路由指向互联网网关的 VPC 主路由表关联的外部子网上。这就是来自外部接口的流量以及与此路由表对象关联的其他子网如何到达 Internet。对于其他子网(例如,Dev 和 DevOps),它们与 VPC 主路由表相关联。这意味着此 VPC 中任何新创建的子网都会自动与此路由表关联。



先决条件


以下先决条件必须满足:

{
      "Version": "2012-10-17",
            "Statement": [
              {
                            "Action": [
                                              "autoscaling:AttachLoadBalancerTargetGroups",
                                              "autoscaling:AttachLoadBalancers",
                                              "autoscaling:CreateAutoScalingGroup",
                                              "autoscaling:CreateLaunchConfiguration",
                                              "autoscaling:DeleteAutoScalingGroup",
                                              "autoscaling:DeleteLaunchConfiguration",
                                              "autoscaling:DescribeAutoScalingGroups",
                                              "autoscaling:DescribeLaunchConfigurations",
                                              "autoscaling:DescribeLoadBalancerTargetGroups",
                                              "autoscaling:DescribeLoadBalancers",
                                              "autoscaling:DetachLoadBalancerTargetGroups",
                                              "autoscaling:DetachLoadBalancers",
                                              "autoscaling:DisableMetricsCollection",
                                              "autoscaling:EnableMetricsCollection",
                                              "autoscaling:ResumeProcesses",
                                              "autoscaling:SuspendProcesses",
                                              "autoscaling:UpdateAutoScalingGroup"
                                          ],
                            "Resource": "*",
                            "Effect": "Allow",
                            "Sid": "AutoScalingPermissions"
                        },
              {
                            "Action": [
                                              "ec2:AllocateAddress",
                                              "ec2:AssignPrivateIpAddresses",
                                              "ec2:AssociateAddress",
                                              "ec2:AssociateIamInstanceProfile",
                                              "ec2:AssociateRouteTable",
                                              "ec2:AssociateSubnetCidrBlock",
                                              "ec2:AssociateVpcCidrBlock",
                                              "ec2:AttachInternetGateway",
                                              "ec2:AttachNetworkInterface",
                                              "ec2:AuthorizeSecurityGroupEgress",
                                              "ec2:AuthorizeSecurityGroupIngress",
                                              "ec2:CreateInternetGateway",
                                              "ec2:CreateNetworkInterface",
                                              "ec2:CreateRoute",
                                              "ec2:CreateRouteTable",
                                              "ec2:CreateSecurityGroup",
                                              "ec2:CreateSubnet",
                                              "ec2:CreateTags",
                                              "ec2:CreateVpc",
                                              "ec2:DeleteInternetGateway",
                                              "ec2:DeleteNetworkInterface",
                                              "ec2:DeleteRoute",
                                              "ec2:DeleteRouteTable",
                                              "ec2:DeleteSecurityGroup",
                                              "ec2:DeleteSubnet",
                                              "ec2:DeleteTags",
                                              "ec2:DeleteVpc",
                                              "ec2:DescribeAccountAttributes",
                                              "ec2:DescribeAddresses",
                                              "ec2:DescribeIamInstanceProfileAssociations",
                                              "ec2:DescribeImages",
                                              "ec2:DescribeInstanceAttribute",
                                              "ec2:DescribeInstanceCreditSpecifications",
                                              "ec2:DescribeInstances",
                                              "ec2:DescribeInternetGateways",
                                              "ec2:DescribeNetworkAcls",
                                              "ec2:DescribeNetworkInterfaces",
                                              "ec2:DescribeRouteTables",
                                              "ec2:DescribeSecurityGroups",
                                              "ec2:DescribeSubnets",
                                              "ec2:DescribeTags",
                                              "ec2:DescribeVolumes",
                                              "ec2:DescribeVolumesModifications",
                                              "ec2:DescribeVpcAttribute",
                                              "ec2:DescribeVpcClassicLink",
                                              "ec2:DescribeVpcClassicLinkDnsSupport",
                                              "ec2:DescribeVpcs",
                                              "ec2:DetachInternetGateway",
                                              "ec2:DetachNetworkInterface",
                                              "ec2:DisableVgwRoutePropagation",
                                              "ec2:DisassociateAddress",
                                              "ec2:DisassociateIamInstanceProfile",
                                              "ec2:DisassociateRouteTable",
                                              "ec2:DisassociateSubnetCidrBlock",
                                              "ec2:DisassociateVpcCidrBlock",
                                              "ec2:EnableVgwRoutePropagation",
                                              "ec2:GetPasswordData",
                                              "ec2:ModifyInstanceAttribute",
                                              "ec2:ModifyInstanceCreditSpecification",
                                              "ec2:ModifyInstanceMetadataOptions",
                                              "ec2:ModifyNetworkInterfaceAttribute",
                                              "ec2:ModifySubnetAttribute",
                                              "ec2:ModifyVolume",
                                              "ec2:ModifyVpcAttribute",
                                              "ec2:MonitorInstances",
                                              "ec2:ReleaseAddress",
                                              "ec2:ReplaceIamInstanceProfileAssociation",
                                              "ec2:ReplaceRoute",
                                              "ec2:ReplaceRouteTableAssociation",
                                              "ec2:RevokeSecurityGroupEgress",
                                              "ec2:RevokeSecurityGroupIngress",
                                              "ec2:RunInstances",
                                              "ec2:StartInstances",
                                              "ec2:StopInstances",
                                              "ec2:TerminateInstances",
                                              "ec2:UnassignPrivateIpAddresses",
                                              "ec2:UnmonitorInstances"
                                          ],
                            "Resource": "*",
                            "Effect": "Allow",
                            "Sid": "EC2Permissions"
                        },
              {
                            "Action": [
                                              "elasticloadbalancing:AddTags",
                                              "elasticloadbalancing:CreateListener",
                                              "elasticloadbalancing:CreateLoadBalancer",
                                              "elasticloadbalancing:CreateTargetGroup",
                                              "elasticloadbalancing:DeleteListener",
                                              "elasticloadbalancing:DeleteLoadBalancer",
                                              "elasticloadbalancing:DeleteTargetGroup",
                                              "elasticloadbalancing:DeregisterTargets",
                                              "elasticloadbalancing:DescribeInstanceHealth",
                                              "elasticloadbalancing:DescribeListeners",
                                              "elasticloadbalancing:DescribeLoadBalancerAttributes",
                                              "elasticloadbalancing:DescribeLoadBalancers",
                                              "elasticloadbalancing:DescribeTags",
                                              "elasticloadbalancing:DescribeTargetGroupAttributes",
                                              "elasticloadbalancing:DescribeTargetGroups",
                                              "elasticloadbalancing:DescribeTargetHealth",
                                              "elasticloadbalancing:ModifyListener",
                                              "elasticloadbalancing:ModifyLoadBalancerAttributes",
                                              "elasticloadbalancing:ModifyTargetGroup",
                                              "elasticloadbalancing:ModifyTargetGroupAttributes",
                                              "elasticloadbalancing:RegisterTargets",
                                              "elasticloadbalancing:RemoveTags"
                                          ],
                            "Resource": "*",
                            "Effect": "Allow",
                            "Sid": "ELBPermissions"
                        },
              {
                            "Action": [
                                              "iam:AddRoleToInstanceProfile",
                                              "iam:AttachRolePolicy",
                                              "iam:CreateInstanceProfile",
                                              "iam:CreatePolicy",
                                              "iam:CreatePolicyVersion",
                                              "iam:CreateRole",
                                              "iam:CreateServiceLinkedRole",
                                              "iam:DeleteInstanceProfile",
                                              "iam:DeletePolicy",
                                              "iam:DeletePolicyVersion",
                                              "iam:DeleteRole",
                                              "iam:DeleteRolePermissionsBoundary",
                                              "iam:DeleteRolePolicy",
                                              "iam:DetachRolePolicy",
                                              "iam:GetInstanceProfile",
                                              "iam:GetPolicy",
                                              "iam:GetPolicyVersion",
                                              "iam:GetRole",
                                              "iam:ListAttachedRolePolicies",
                                              "iam:ListInstanceProfilesForRole",
                                              "iam:ListPolicyVersions",
                                              "iam:ListRolePolicies",
                                              "iam:PassRole",
                                              "iam:PutRolePermissionsBoundary",
                                              "iam:RemoveRoleFromInstanceProfile",
                                              "iam:TagRole",
                                              "iam:UpdateAssumeRolePolicy",
                                              "iam:UpdateRole",
                                              "iam:UpdateRoleDescription"
                                          ],
                            "Resource": "*",
                            "Effect": "Allow",
                            "Sid": "IAMPermissions"
              }
                  ]
}

可上下滑动查看全部内容


创建一个亚马逊云科技站点使用 F5 分布式云 Console


亚马逊云科技 VPC 站点对象创建和部署包括以下内容:


阶段

描述

创建亚马逊云科技 VPC 对象

使用向导在控制台中创建 VPC 站点对象。

部署站点

使用自动化方法部署在 VPC 对象中配置的站点。


创建亚马逊云科技 VPC 站点对象


可以在多种服务中查看和管理站点:Cloud and Edge Sites、Distributed Apps 和 Load Balancers。


此示例显示 Sites 在.AWSCloud and Edge Sites


第 1 步:登录控制台,开始创建亚马逊云科技 VPC 站点对象。


注意:主页是基于角色的,由于您的角色自定义,您的主页可能看起来不同。选择All Services下拉菜单以发现所有选项。自定义设置:Administration > Personal Management > My Account > Edit work domain & skills > Advanced框 > 复选框Work Domain > Save changes.


图:控制台主页


注意:确认 Namespace 功能在左上角的正确命名空间中。并非在所有服务中都可用。



注意:如果选项未显示可用,请选择左下角的 Show 链接。Advanced nav options visible 如果需要,选择 Hide 从 Advanced nav options 模式中最小化选项。



图:站点管理亚马逊云科技



图:亚马逊云科技站点设置


第 2 步:配置 VPC 和站点设置

在该 Site Type Selection 部分中,执行以下操作:

步骤 2.1:设置区域并配置 VPC


注意:如果您使用的是现有 VPC,请 enable_dns_hostnames 在现有 VPC 配置中启用该框。



图:VPC 和节点类型配置


步骤 2.2:设置节点配置。

从 Select Ingress Gateway or Ingress/Egress Gateway 菜单中选择一个选项。

配置入口网关。

对于 Ingress Gateway (One Interface)选项:


注意:默认情况下亚马逊云科技 Certified Hardware 设置为 aws-byol-voltmesh。Add item 您可以使用该选项添加多个节点。


配置入口/出口网关。

对于 Ingress/Egress Gateway (Two Interface)选项:


注意:工作负载子网是托管应用工作负载的网络。为了成功路由到在工作负载子网中运行的应用,需要在相应的站点对象上添加到工作负载子网 CIDR 的内部静态路由。



图:节点的网络防火墙配置


注意:默认情况下亚马逊云科技 Certified Hardware设置为aws-byol-multi-nic-voltmesh。Add item您可以使用该选项添加多个节点。


应用堆栈集群(一个接口)。

对于 App stack Cluster (One Interface)选项:


注意:分布式云平台支持托管 K8s 的变异和验证 webhook。可以在 K8s 配置中启用 Webhook 支持(管理 > 管理 K8s > K8s 集群)。



注意:默认情况下亚马逊云科技 Certified Hardware 设置为 aws-byol-voltstack-combo。Add Item 您可以使用该选项添加多个节点。


步骤 2.3:设置部署类型。


注意:确保亚马逊云科技凭证与策略要求文档中所需的访问策略一起应用。


*策略要求:https://docs.cloud.f5.com/docs/reference/cloud-cred-ref/aws-vpc-cred-ref


图:部署配置


第 3 步:设置站点节点参数


图:站点节点参数配置


第 4 步:配置高级配置选项


图:亚马逊云科技 VPC 高级配置



第 5 步:配置被阻止的服务

您可以让您的站点阻止服务,例如 Web、DNS 和 SSH。


图:添加阻止的服务



第 6 步:完成亚马逊云科技 VPC 站点对象创建


图:生成的亚马逊云科技 VPC 对象


部署站点


在控制台中创建亚马逊云科技站点 VPC 对象会生成 Terraform 参数。


注意:每个站点节点的站点升级最多可能需要 10 分钟。站点升级完成后,您必须通过 Action 云站点管理页面上的菜单将 Terraform 参数应用到站点。



图:亚马逊云科技 VPC 对象应用


亚马逊云科技 VPC 对象的 Status 字段更改为 Apply Planning。


注意:或者,您可以在部署之前执行 Terraform 计划活动。找到您的亚马逊云科技 VPC 站点对象并选择... > Plan (Optional)以启动 Terraform 计划的操作。这将为 Terraform 创建执行计划。



图:应用的亚马逊云科技 VPC 对象



注意:centos您可以使用用户名和私钥通过 SSH 登录节点的命令行界面 (CLI) 。


图:在线站点状态


注意:对于入口/应用堆栈站点:当您更新站点对象的工作程序节点时,会自动进行扩展。对于入口/出口站点:当您更新站点对象的工作节点时,Apply 会启用 Terraform 按钮。单击 Apply。


删除 VPC 站点


执行以下操作以删除站点:


注意:删除 VPC 对象会从 VPC 中删除站点和节点并删除 VPC。如果删除操作没有删除对象并返回任何错误,请从状态中检查错误,修复错误,然后重新尝试删除操作。如果问题仍然存在,请联系技术支持。您可以使用...> Terraform Parameters>Apply status选项检查状态。

展开阅读全文

页面更新:2024-04-30

标签:亚马逊   子网   科技   分布式   节点   字段   单击   选项   接口   对象   快速   站点

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top