4 个版本
0.2.1 | 2023 年 7 月 7 日 |
---|---|
0.2.0 | 2023 年 7 月 7 日 |
0.1.0 | 2023 年 4 月 17 日 |
#9 在 #service-account
22KB
286 行
sudo-gcp 目前处于 alpha 阶段!预期会有重大更改。
Sudo GCP
此工具允许使用短暂的 OAuth 访问令牌以临时提升权限运行 Google Cloud 命令。
sudo-gcp
使用操作系统的密钥存储/密钥链安全地缓存访问令牌,并在后续调用中重用匹配的非过期令牌。
设置
- 定义一个服务账户作为提升权限的持有者
- 授予该服务账户提升权限
- 定义哪些人有权临时获得这些权限
- 我们使用一个名为 "role-gcp-sudo-" 的前缀组名的 Google 组
- 将这些用户分配给
roles/iam.workloadIdentityUser
角色,绑定到该服务账户
安装
cargo install sudo-gcp
配置
如果同时存在环境和文件配置源,则环境变量优先于配置文件。
通过文件配置
配置可以通过当前工作目录中的 sudo-gcp.toml
文件进行。有关更多详细信息,请参阅 示例配置文件。
可以在运行 sudo-gcp
时提供位于不同位置的配置文件,使用 --config-file
选项。
# create a minimal configuration file if it does not already exist
echo > sudo-gcp.toml 'service_account = "[email protected]"'
通过环境配置
配置也支持通过前缀为 SUDOGCP_
的环境变量。
export SUDOGCP_SERVICE_ACCOUNT=[email protected]
使用方法
配置完成后,使用与 sudo
类似的用法,将需要提升权限的命令用 sudo-gcp
命令包装。
示例
sudo-gcp gcloud compute instances list
terraform plan # error: no permission to read tfstate
sudo-gcp !! # try again, but with necessary privileges
有关完整的用法详细信息,请运行 sudo-gcp --help
。
依赖项
~10–26MB
~368K SLoC