具有 IAM 限制的 AWS CLI EC2 describe-address

具有 IAM 限制的 AWS CLI EC2 describe-address

我正在尝试找到一种列出/描述 EC2 实例的公共 IP(不必是 EIP)的方法。我已阅读有关 Describe* 的信息,并且知道无法在策略中指定资源的限制。

我的问题是:

在策略中指定资源时,我有什么办法可以获取 EC2 实例的公共 IP?是否有任何可以在 awscli 中使用的命令,这些命令会在用户/组下运行时返回公共 IP,并且仅在指定资源内允许此操作?

我基本上想应用一项策略,授予用户/组仅从指定的 EC2 实例 ID 获取 IP 的权限。

谢谢你!

答案1

唯一可以获取 EC2 实例的公共 IP 地址的命令如下:

aws ec2 describe-instances \
  --region us-east-1 \
  --instance-ids i-abcdef

不幸的是,没有 IAM 策略语法能够将命令限制为仅单个 EC2 实例。describe-instances不允许资源级权限。因此,要授予此命令的访问权限,需要授予所有 EC2 实例的访问权限。

答案2

你可以使用它来获取公共 IP

aws ec2 describe-instances --instance-ids i-the-instance-id-here | grep PublicIpAddress | awk -F ":" '{print $2}' | sed 's/[",]//g'

并且您可以授予您的 AWS CLI 用户AmazonEC2ContainerRegistryReadOnly访问权限。

相关内容