iamlive - 使用客户端监控 (CSM) 或嵌入式代理从 AWS 调用生成 IAM 策略

Created at: 2021-02-04 18:57:02
Language: Go
License: MIT

直播

使用客户端监控 (CSM) 或嵌入式代理从 AWS 调用生成 IAM 策略

安装

预构建的二进制文件

适用于 Windows、macOS 和 Linux 的预构建二进制文件可在项目发布中下载。

下载后,将提取的二进制文件放在 $PATH 中(或就地执行)。对于 macOS 用户,你可能需要通过系统偏好设置允许应用程序运行。

用 Go 构建

要构建和安装此应用程序,请克隆此存储库并从其基础执行以下操作:

go install

你必须安装 Go 1.16 或更高版本才能使构建工作。

家酿

你也可以使用 Homebrew Tap 使用以下命令安装此应用程序:

brew install iann0036/iamlive/iamlive

其他方法

用法

要启动侦听器,只需

iamlive
在 CLI/SDK 应用程序的单独窗口中运行即可。完成后,你可以使用 Ctrl+C 退出。

CLI 参数

你还可以选择在

iamlive
命令中包含以下参数:

--set-ini:设置后,

.aws/config
文件将更新为使用 CSM 监控或 CA 包并在退出时删除(默认值:false

--profile:结合使用指定的配置文件

--set-ini
默认:默认

--fails-only:设置后,只有失败的 AWS 调用才会添加到策略中,仅限 csm 模式(默认值:false

--output-file:指定将在 SIGHUP 或退出时写入的文件(默认值:unset

--refresh-rate:不是每次 API 调用都刷新到控制台,而是按照这个秒数执行(默认值:0

--sort-alphabetical:按字母顺序排序操作(默认值:false

--host:监听 CSM 的主机(默认值:127.0.0.1

--background:设置后,进程将返回当前PID并在后台运行而不输出(默认值:false

--force-wildcard-resource:设置后,资源将始终是通配符(默认值:false

--mode:监听模式(

csm
proxy
)(默认:csm

--bind-addr:代理模式的绑定地址(默认:127.0.0.1:10080

--ca-bundle:用于代理模式的 CA 证书包 (PEM)(默认: ~/.iamlive/ca.pem

--ca-key:用于代理模式的 CA 证书密钥(默认: ~/.iamlive/ca.key

--account-id:在代理模式用于策略输出的 AWS 账户 ID(默认值:123456789012,除非检测到

基本示例(CSM 模式)

iamlive --set-ini

基本示例(代理模式)

iamlive --set-ini --mode proxy

综合示例(CSM模式)

iamlive --set-ini --profile myprofile --fails-only --output-file policy.json --refresh-rate 1 --sort-alphabetical --host 127.0.0.1 --background

综合示例(代理模式)

iamlive --set-ini --mode proxy --profile myprofile --output-file policy.json --refresh-rate 1 --sort-alphabetical --bind-addr 127.0.0.1:10080 --ca-bundle ~/.iamlive/ca.pem --ca-key ~/.iamlive/ca.key --account-id 123456789012 --background --force-wildcard-resource

参数也可以在位于 的 INI 文件中指定

~/.iamlive/config

CSM模式

客户端监控模式是默认行为,将使用通过 UDP 本地交付的指标来仅使用

Action
密钥捕获策略语句(
Resource
仅在代理模式下可用)。

命令行界面

要在 AWS CLI 中启用 CSM,你应该使用该

--set-ini
选项或将以下内容添加到 中的相关配置文件
.aws/config

csm_enabled = true

或者,你可以在执行 CLI 命令的窗口中运行以下命令:

export AWS_CSM_ENABLED=true

SDK

要在各种 AWS 开发工具包中启用 CSM,你可以在应用程序启动之前在执行应用程序的窗口中运行以下命令:

export AWS_CSM_ENABLED=true
export AWS_CSM_PORT=31000
export AWS_CSM_HOST=127.0.0.1

代理模式

代理模式将为本地 HTTP(S) 服务器(默认为

http://127.0.0.1:10080
)提供服务,该服务器将检查发送到 AWS 端点的请求,然后再转发以生成带有
Action
Resource
密钥的IAM 策略语句。
~/.iamlive/
默认情况下,CA 密钥/证书对将自动生成并存储在其中。

命令行界面

要在 AWS CLI 中设置适当的 CA 包,你应该使用该

--set-ini
选项或将以下内容添加到 中的相关配置文件
.aws/config

ca_bundle = ~/.iamlive/ca.pem

或者,你可以在执行 CLI 命令的窗口中运行以下命令:

export AWS_CA_BUNDLE=~/.iamlive/ca.pem

你还必须通过在执行 CLI 命令的窗口中运行以下命令来为会话设置代理设置:

export HTTP_PROXY=http://127.0.0.1:10080
export HTTPS_PROXY=http://127.0.0.1:10080

SDK

要在各种 AWS 开发工具包中启用 CSM,你可以在应用程序启动之前在执行应用程序的窗口中运行以下命令:

export HTTP_PROXY=http://127.0.0.1:10080
export HTTPS_PROXY=http://127.0.0.1:10080
export AWS_CA_BUNDLE=~/.iamlive/ca.pem

有关设置 CA 包的更多详细信息,请查看官方文档

常见问题

我在尝试构建自己时收到一条消息“包嵌入不在 GOROOT 中”

该项目需要正确构建 Go 1.16 或更高版本(由于嵌入功能)。

致谢

该项目利用了议会,并得到了 Scott Piper 的CSM 解释器的协助。还要感谢 Noam Dahan 对缺失依赖动作的研究

iam:PassRole