为API Gateway使用自定义域名和mTLS双向证书认证

一、背景

通常使用的HTTPS接口采用的是服务器端Transport Layer Security(以下简称TLS)认证。TLS认证默认是由服务器提供证书,服务器端证书经过全球数家证书颁发机构和顶级CA签署认证的证书,来标识服务器自己的真实、正确的身份。在亚马逊云科技的云平台上,这一服务器端证书通常由ACM生成并管理,配置到Amazon CloudFront、Amazon ELB、Amazon API Gateway(以下简称API Gateway)等服务上。

为了进一步增强安全性,TLS协议建立连接时候,服务器可以要求客户端也提供自己X.509格式的证书用于验明身份。由于服务器和客户端双方都需要提供证书,这种认证方式被称为 mutual Transport Layer Security (以下简称mTLS),也称为双向TLS。

Continue reading “为API Gateway使用自定义域名和mTLS双向证书认证”

为Amazon API Gateway启用IAM身份验证

一、背景

新创建的Amazon API Gateway (以下简称API Gateway)的Regional级别的接口是可以通过互联网进行公开调用的。在API为应用内部调用的场景下,需要设置身份验证。主要的身份验证手段有:IAM身份验证、Lambda转发器验证(Backend可使用数据库)、OAuth/JWT认证。此外,在API Gateway上使用mTLS,配置双向证书,也可以显著提升安全性。

本文介绍如何开启IAM身份验证。

Continue reading “为Amazon API Gateway启用IAM身份验证”

在IAM新版界面(2022)上创建AKSK的步骤说明(老用户请跳过本篇基础内容)

由于IAM控制台界面改版,因此最新才接触AWS的用户可能无法找到管理AWSCLI、SDK使用的Access Key和Secret Key位置。特整理此文章。老用户可直接跳过本篇文章。

1、创建用户

在IAM界面上点击左侧菜单Users,然后点击右侧创建用户按钮进入向导。

Continue reading “在IAM新版界面(2022)上创建AKSK的步骤说明(老用户请跳过本篇基础内容)”

使用Amazon WAF对Amazon API Gateway的接口做IP地址白名单保护

一、背景

Amazon API Gateway(以下简称)是AWS的托管的API网关服务。许多企业需要将自身应用的数据接口暴露给第三方合作伙伴,但使用专线成本较高,或者因面向多个互联网服务交互,因此将接口暴露在互联网上。为提升接口安全性,可采用为API Gateway设置来源IP地址限制的办法,提升安全。API Gateway支持设置Resource Policy,通过资源策略中填写IP Condition来限制可以访问的IP访问,包括白名单允许,或者显式拒绝。

使用API Gateway自带的策略控制IP地址有一些局限,因为资源策略是随着API Gateway的部署Stages下发生效的,因此有时候仅需要IP地址的策略变更,但是为了让其生效,需要对整个接口开发的版本和Stages阶段创建新的版本,并进行流量切换。如此过程对整个应用开发和运行体系的影响较大。那么有什么办法实施Out-of-band方式(带外)的IP策略管控呢?这里就可以用到Amazon WAF。

Continue reading “使用Amazon WAF对Amazon API Gateway的接口做IP地址白名单保护”

在EC2 Linux操作系统上部署ClamAV并开启实时防护、集中日志采集和统一告警

一、背景

计算机信息系统等级保护(俗称等保)的要求之一是应用服务器具有病毒防护手段,并定期升级病毒特征库。这个防护场景通常被称为Endpoint Detection and Response(EDR),也可简称终端防护。EDR一般是采用侵入性的防护方式。所谓侵入性意味着需要在EC2虚拟机内植入专门的Agent才可以进行安全防护。在亚马逊云科技上,可通过Marketplace方式订阅多个第三方厂家的EDR,也可以线下采购。

商用的EDR方案有完整的检测、识别、发现、预防、干预、强化、集中管控等一整套管理功能,不过相对带来的问题是成本较高。在一些非严格等保的场合,如果只是要求实现病毒扫描和防护能力,那么可使用本文介绍的ClamAV方案进行替代。

Continue reading “在EC2 Linux操作系统上部署ClamAV并开启实时防护、集中日志采集和统一告警”

优化S3存储成本:S3智能分层配合S3 Glacier即时检索获得成本节约

一、背景

S3 Glacier Instant Retrieval(S3 GIR)存储类型是2021年re-Invent新发布的存储类型,原有的异步方式取回数据的Glacier存储类型则改名为S3 Glacier Flexible Retrieval。新发布的S3 Glacier Instant Retrieval的存储费用与S3 Glacier Flexible Retrieval相近,在此基础上提供了立刻可取的性能,适合每年访问2-3次数据场景下的海量数据存储。

Continue reading “优化S3存储成本:S3智能分层配合S3 Glacier即时检索获得成本节约”

使用NICE DCV管理带有GPU的Ubuntu桌面

注:半年前写的,之前忘记发布,这次更新上来

一、背景

1、NICE DCV简介

NICE DCV是一个高性能的远程显示管理协议,允许用户安全的将云上远程桌面和应用以流式方式通过网络传输到客户端。在Amazon EC2上安装NICE DCV,客户可以运行支持GPU的图形应用程序或HPC程序,替代昂贵的图形工作站。NICE DCV流式传输协议也被用在多个服务,包括Amazon Appstream 2.0,AWS Nimble Studio,以及AWS RoboMaker。

NICE DCV可以使用单机模式从客户端直接连接到EC2;也可以使用NICE DCV Connection Gateway,NICE DCV Session Session Manager Broker和NICE DCV Session Manager Agent进行多机会话管理。本文描述使用NICE DCV直接连接到EC2单机模式部署。

Continue reading “使用NICE DCV管理带有GPU的Ubuntu桌面”

使用Route53 Log Query记录VPC内的DNS请求

一、背景

Route53支持对特定VPC内发起的DNS请求进行记录,由此可以记录VPC内应用对外访问的请求信息。仅限域名,通过IP直接访问的不会记录。

本文介绍如何开启Route53的DNS日志,然后将其输出到CloudWatch的日志组的这样一个简单场景。在生产环境中,日志信息还可以输出到Kinesis或者OpenSearch,以便于各种分析。如果是低频分析,审计用途为主,也可以将日志输出到S3存储桶。

请注意:Query logging功能是记录日志的审计能力,不是实时阻断。如果您需要实施阻断,那么应该考虑Route53 DNS Firewall(2022年10月AWS中国区也上线了此功能),或者使用Network Firewall(简称NFW),或者使用网络流量深度检测的终极解决方案Gateway Load Balancer(简称GWLB)。因此基于以上的信息,可选择一个合适的方案。

本文以中国区为例进行配置,配置将默认VPC的日志输出到CloudWatch日志组。

Continue reading “使用Route53 Log Query记录VPC内的DNS请求”

Ubuntu 20.04 LTS安装Mate桌面并使用VNC登录

一、在EC2上安装Mate

在创建EC2时候,从EC2控制台上Quickstart列表中的AMI里找到Ubuntu 20.04LTS。注意不需要找Marketplaces的镜像,用Quickstart列表中的足够了。创建EC2时候,建议内存不低于4GB,例如选择 t3.medium,默认的系统盘只有8GB容量会不足,建议改成系统盘不低于30GB;在EC2的安全组配置步骤,放行TCP协议5901端口。最后创建EC2。

Continue reading “Ubuntu 20.04 LTS安装Mate桌面并使用VNC登录”

EKS 101动手实验(十二)使用Karpenter+HPA实现EKS集群扩展

有关EKS系列文档和实验的汇总,请点击这里跳转

一、背景

EKS的弹性有两种方式:

  • 1、单个应用的Deployment的replica扩容
  • 2、Node节点的扩容

对于第一种扩容,常用的方式是Horizontal Pod Autoscaler (HPA),通过metrics server,监控CPU负载等指标,然后发起对deployment的replica的变化。此配置会调整Pod数量,但不会调整节点数量。

对于第二种扩容,之前常用的方式是Cluster Autoscaler (CA)对NodeGroup节点组的EC2进行扩容,但是其扩展生效速度较慢。本文使用新的Karpenter组件对Nodegroup进行扩容。Karpenter不需要创建新的NodeGroup,而是直接根据匹配情况自动选择On-demand或者Spot类型的实例。

本实验流程如下:

Continue reading “EKS 101动手实验(十二)使用Karpenter+HPA实现EKS集群扩展”

采用Spot优化EC2价格的测算

Spot竞价实例是一种非常更有效的成本节约手段。

引用AWS官网:

竞价型实例是一种使用备用 EC2 容量的实例,以低于按需价格提供。由于竞价型实例允许您以极低的折扣请求未使用的 EC2 实例,这可能会显著降低您的 Amazon EC2 成本。竞价型实例的每小时价格称为 Spot 价格。每个可用区中的每种实例类型的 Spot 价格是由 Amazon EC2 设置的,并根据竞价型实例的长期供求趋势逐步调整。您的竞价型实例在容量可用时运行。

如果能灵活控制应用程序的运行时间并且应用程序可以中断,竞价型实例就是经济实惠之选。例如,竞价型实例非常适合数据分析、批处理作业、后台处理和可选的任务。

https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/using-spot-instances.html

下面简单进行测算。

Continue reading “采用Spot优化EC2价格的测算”