MaksymLeus/awscli-addons
GitHub: MaksymLeus/awscli-addons
一组面向 AWS CLI 的高效扩展工具集,简化 MFA 认证、角色切换和身份验证等日常云操作流程。
Stars: 1 | Forks: 0
🚀 AWSCLI-Addons
高性能 CLI 实用工具,用于扩展和简化 AWS 工作流
一组高性能、独立的 CLI 实用工具集合,旨在扩展和简化您的日常 AWS 工作流程。这些工具填补了复杂的 aws cli 命令与常见开发者任务(如 MFA 身份验证、角色切换、ECR 管理和身份验证)之间的空白。

## 🛠️ 功能
此套件为您的工具箱添加了专门的命令(内置简写别名!):
* **`whoami`** (`wi`): 快速识别当前的 IAM 身份、账户 ID 和区域。
* **`mfa`**: 简化使用多因素认证设备生成临时会话 token 的过程。
* **`assume-role`** (`ar`): 简化 AWS 账户和 IAM 角色之间的切换。
* **`show-creds`** (`sc`): 查看您当前活跃的 AWS 凭证(支持导出或显示密钥)。
* **`configure`** (`conf`): 交互式配置 AWS 凭证和设置。
* **`myip`**: 立即检索您当前的公共 IP 地址(对于更新 Security Group 入站规则至关重要)。
* **`verify`** (`ver`): 验证您当前的凭证和连接,以确保您的环境已为云端准备就绪。
* **`ecr`**: 一组子命令,用于生成 Docker/Helm 登录命令并管理 repositories。
* **`upgrade`** (`up`): 无缝将 CLI 更新到最新版本。
## 📂 项目结构
```
awscli-addons
├── Dockerfile # Container definition for consistent environments
├── awscli_addons/ # Main Python source package
│ ├── cli.py # Application entry point & command routing
│ ├── commands/ # Logic for individual CLI subcommands
│ └── utils/ # Internal helper modules
│ └── aws_config.py # shared logic for parsing ~/.aws files
├── docs/ # Detailed documentation suite
│ ├── CONFIGURATION.md # Guide for AWS profiles & aliases
│ ├── DEPLOYMENT.md # Binary compilation & release info
│ ├── DEVELOPMENT.md # Setup guide for contributors
│ ├── KUBERNETES.md # Pod/CronJob & IRSA usage (Recommended)
│ ├── OVERVIEW.md # Technical architecture deep-dive
│ └── TODO.md # Project roadmap & pending tasks
├── pyproject.toml # Modern Python build config & dependencies
└── tools/ # Automation and distribution scripts
├── build.sh # Script to compile standalone binaries
└── installer.sh # One-line installation & alias setup script
```
## 🚀 安装
### 即时安装(推荐)
使用我们托管的安装程序自动检测您的操作系统和架构。
| Mode | Command |
| :---: | --- |
| **Auto** | `curl -sSL https://raw.githubusercontent.com/MaksymLeus/awscli-addons/main/tools/installer.sh \| bash` |
| **Force Binary** | `curl -sSL https://raw.githubusercontent.com/MaksymLeus/awscli-addons/main/tools/installer.sh \| BINARY_CMD=true bash` |
| **Force Python** | `curl -sSL https://raw.githubusercontent.com/MaksymLeus/awscli-addons/main/tools/installer.sh \| PYTHON_ONLY=true bash` |
*前置条件:`git` 和 `python 3.11+`(用于 Python 模式)。*
**安装特定版本:**
```
curl -sSL https://raw.githubusercontent.com/MaksymLeus/awscli-addons/main/tools/installer.sh | VERSION=v1.1.2 bash
```
### 手动安装
从 [`Releases page`](https://github.com/MaksymLeus/awscli-addons/releases) 下载适合您平台的二进制文件:
```
# Linux AMD64 示例
wget https://github.com/MaksymLeus/awscli-addons/releases/download/${VERSION}/awscli-addons-linux-amd64
chmod +x awscli-addons-linux-amd64
sudo mv awscli-addons-linux-amd64 /usr/local/bin/awscli-addons
```
## 📖 用法
安装完成后,直接使用命令或通过原生 AWS CLI 集成使用。
### 直接使用
```
# 使用别名 'wi' 检查当前身份
awscli-addons wi
# 为特定配置文件生成 MFA 会话
awscli-addons mfa --profile default --mfa-code 123456
# 查看当前会话的 AWS 凭证
awscli-addons sc --reveal
# 生成 ECR Docker 登录命令
awscli-addons ecr login --profile my-profile
```
### 高级用户:原生 AWS CLI 集成
安装程序会**自动**为您配置一个 AWS CLI alias。如果您在安装这些插件之后安装官方 AWS CLI,集成将立即可用。
它会在您的 **`~/.aws/cli/alias`** 配置中添加一个持久化 alias,将 **`aws addons`** 直接映射到您的 `awscli-addons` 二进制文件。

## 🔨 开发与构建
要从源码构建项目或添加新命令:
1. 安装依赖:
pip install .
2. 添加命令:
在 `awscli_addons/commands/` 中创建一个新的 `.py` 文件,并在 `cli.py` 中注册它。
3. 构建独立二进制文件:
./tools/build.sh
## Docker
在容器内运行工具:
```
# 交互式身份检查
docker run --rm -v ~/.aws:/root/.aws awscli-addons whoami
# 进入容器内部的 shell
docker run --rm -it --entrypoint bash awscli-addons
```
## Kubernetes
在集群内使用插件进行调试或自动化。
```
# 绕过 entrypoint 以访问 bash
kubectl run aws-debug -it --rm --image=your-repo/awscli-addons:latest --command -- /bin/bash
# 直接运行身份检查
kubectl run aws-check --rm -it --image=your-repo/awscli-addons:latest -- wi
```
## 📚 文档
有关更详细的信息,请参阅 `docs/` 目录:
| Document | Purpose |
| ------------------ | --------------------------------------- |
| [`OVERVIEW.md`](docs/OVERVIEW.md) | 架构和命令参考。 |
| [`CONFIGURATION.md`](docs/CONFIGURATION.md) | 工具设置和 AWS profile 管理。 |
| [`DEPLOYMENT.md`](docs/DEPLOYMENT.md) | 二进制编译和分发。 |
| [`DEVELOPMENT.md`](docs/DEVELOPMENT.md) | 贡献指南和从源码构建。 |
| [`TODO.md`](docs/TODO.md) | 路线图和计划改进。 |
## 📄 许可证
MIT License — 详见 [`LICENSE.md`](LICENSE.md)。
## 支持
- [GitHub Issues](https://github.com/MaksymLeus/awscli-addons/issues)
标签:AssumeRole, Awesome, AWS CLI, AWS 扩展, DNS解析, Docker 容器, ECR 管理, IAM 身份管理, MFA 多因素认证, Power User, Python, 临时凭证, 云原生工具, 子域名突变, 开发效率, 开源项目, 数字取证, 无后门, 系统管理, 网络可观测性, 自动化脚本, 请求拦截, 跨账户访问, 逆向工具