#service-account #access-token #gcloud #cloud #wrapper #gcp #secure

bin+lib sudo-gcp

一个 gcloud CLI 包装器,用于使用更安全的临时访问令牌和服务账户伪装模式

4 个版本

0.2.1 2023 年 7 月 7 日
0.2.0 2023 年 7 月 7 日
0.1.0 2023 年 4 月 17 日

#9#service-account

Apache-2.0

22KB
286

sudo-gcp 目前处于 alpha 阶段!预期会有重大更改。

Sudo GCP

此工具允许使用短暂的 OAuth 访问令牌以临时提升权限运行 Google Cloud 命令。

sudo-gcp 使用操作系统的密钥存储/密钥链安全地缓存访问令牌,并在后续调用中重用匹配的非过期令牌。

设置

  1. 定义一个服务账户作为提升权限的持有者
  2. 授予该服务账户提升权限
  3. 定义哪些人有权临时获得这些权限
    • 我们使用一个名为 "role-gcp-sudo-" 的前缀组名的 Google 组
  4. 将这些用户分配给 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