使用IAM创建日常Admin账户并设置留底账户

一、背景

当系统规模不大时候,通常一个AWS Account(账户ID是12位数字)只有几个高权限管理员负责云平台运维,此时可能大家共享同一个登录用户名,由此带来审计不便,且存在安全风险。

由此,可考虑将根账户(root账户)或者一个最高权限的IAM用户作为留底账户保护起来,并额外创建几个新的管理员账号下发给团队。同时,新创建的管理员账号对留底账号和其他管理员账号没有修改权限,以避免各自串通和干扰,确保各自的独立性。

Continue reading “使用IAM创建日常Admin账户并设置留底账户”

为Aurora MySQL启用审计日志(Audit Log)

一、背景

在数据库RDS创建界面中,点击Addional额外设置之后可以展开日志设置,有四个选项,分别是:

Select the log types to publish to Amazon CloudWatch Logs:

  • Audit log
  • Error log
  • General log
  • Slow query log

这几个选项打开后,Cloudwatch会输出General log和Error log,可以看到失败的登录记录,但是无法看到Audit log,也就是无法看到每一条SQL查询、更新级别的日志。

这是由于,RDS日志需要额外打开选项。

Continue reading “为Aurora MySQL启用审计日志(Audit Log)”

使用CloudTrail和Athena分析S3访问日志

一、背景

S3存储桶的文件读写日志包括Server Access Log和CloudTrail两种方式。二者之间的差别可参考如下网址:

https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/logging-with-S3.html

在官方上描述非常详细,可看到CloudTrail采集的信息更加丰富,因此本文将介绍使用CloudTrail做分析。如下截图。

Continue reading “使用CloudTrail和Athena分析S3访问日志”

EKS 101 动手实验(四)编写yaml配置文件使用ECR上的镜像部署部署应用

一、确认ECR上镜像URI

进入ECR界面,确认镜像完整URI地址是:

461072029761.dkr.ecr.ap-southeast-1.amazonaws.com/phpdemo:1

注意,最后要包含tag版本号。

二、编写yaml文件

格式如下。使用前文实验的ALB Ingress部署。

Continue reading “EKS 101 动手实验(四)编写yaml配置文件使用ECR上的镜像部署部署应用”

EKS 101 动手实验(三)启用CloudWatch Container Insight并调整集群的节点组配置

一、启用CloudWatch Container Insight(可选)

注意,2021年7月6日,CloudWatch Container Insight已经在中国区发布。

1、添加IAM角色

进入EC2控制台,找到Node节点,查看当前使用的IAM Role,点击IAM Role名字跳转到IAM界面。

点击挂载新策略,将CloudWatchAgentServerPolicy 加入其中,保存退出。

Continue reading “EKS 101 动手实验(三)启用CloudWatch Container Insight并调整集群的节点组配置”

EKS 101 动手实验(二)使用ELB Ingress

一、部署ELB Ingress

本文将部署适合EKS 1.20版本的ELB Ingress Controller V2.2.0版本。请注意,与之前EKS 1.14/1.15等版本使用的Ingress Controller 1.x有所不同。请注意区分。

1、为EKS生成IAM的OIDC授权

执行如下命令。请注意替换集群名称和区域为实际操作的环境。

eksctl utils associate-iam-oidc-provider \
  --region ap-southeast-1 \
  --cluster eksworkshop \
  --approve

返回结果如下表示成功。

Continue reading “EKS 101 动手实验(二)使用ELB Ingress”

EKS 101 动手实验(一)创建EKS集群

EKS 1.20版本 @2021-07 Global Region测试通过

一、工具准备

1、Windows下安装EKS客户端

首先安装好AWS CLI。eksctl的安装可通过choco包管理工具进行。先使用管理员权限打开powershell,执行:

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

即可安装好choco。然后在cmd下用管理员权限安装:

choco install -y eksctl 

很多日常软件都可以后续执行choco install安装。

Continue reading “EKS 101 动手实验(一)创建EKS集群”

Python批量开关EC2脚本

前提条件:

  • 需要本机配置AWS CLI的AK/SK;
  • 本机安装Python3;
  • 本机安装boto3库(执行pip3 install boto3)。

Python脚本如下:

import boto3.ec2
client = boto3.client('ec2')
ec2action = boto3.resource('ec2')

response = client.describe_instance_status(
    IncludeAllInstances=True
)

for i in response['InstanceStatuses']:
    instance = ec2action.Instance(i['InstanceId'])
    response1 = instance.stop(
            #DryRun=True,
            Force=True
    )
    print("instance: ", i['InstanceId'], "is being stopped." )
    print(response1)

以上为关机脚本。如果需要批量开机,替换stop为start即可。