如何在 powershell 中按 IAM 角色过滤 AWS 实例并获取该实例的私有 IP 地址?
How can I filter AWS Instances by IAM role in powershell and get the private ip address of that instance?
我正在寻找一个可以工作的脚本,它可以根据分配给它的 IAM 角色过滤 AWS 实例,然后获取私有 IP 地址 的。
我最近问了一个类似的问题: 答案非常有效。
现在,我想做同样的事情,除了 Windows PowerShell。
我知道 PowerShell 不像 boto
那样提供很好的功能,但是我知道有一个适用于 PowerShell 的 AWS 工具包,您可以使用它来获取有关实例的信息。
我已经在所有会话中设置 运行 配置文件。
PS > Set-AWSCredentials -AccessKey AKIAIOSFODNN7EXAMPLE -SecretKey wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY -StoreAs TestUser1
PS > Initialize-AWSDefaults -ProfileName TestUser1 -Region ap-southeast-2
这大致就是我的代码在 boto 上的样子,它按 IAM 角色过滤实例,然后将其私有 IP 地址存储在列表中。
instancelist = conn.get_only_instances(filters={"iam-instance-profile.arn": "arn:aws:iam::123456789012:instance-profile/TestRole"})
aList = list()
for instance in instancelist:
output1 = instance.private_ip_address
aList.append(output1)
在 PowerShell 中这样做的等效方法是什么?
在弄清楚代码之前,我不得不反复研究代码。事实证明,我可以使用与我在 boto 代码中所做的相同的过滤器参数和值。!
这是我的代码和输出:
代码:
$filter = New-Object Amazon.EC2.Model.Filter -Property @{Name = "iam-instance-profile.arn"; Value = "arn:aws:iam::123456789012:instance-profile/TestRole"}
$ec2 = @(Get-EC2Instance -Filter $filter)
$ec2instances = $ec2.instances #returns instances with its attributes
$ec2instances.privateipaddress #returns private ip addresses of the filtered instances
输出:
PS > & "pathtocode.ps1"
10.200.1.11
10.200.1.45
10.200.1.132
我正在寻找一个可以工作的脚本,它可以根据分配给它的 IAM 角色过滤 AWS 实例,然后获取私有 IP 地址 的。
我最近问了一个类似的问题:
我知道 PowerShell 不像 boto
那样提供很好的功能,但是我知道有一个适用于 PowerShell 的 AWS 工具包,您可以使用它来获取有关实例的信息。
我已经在所有会话中设置 运行 配置文件。
PS > Set-AWSCredentials -AccessKey AKIAIOSFODNN7EXAMPLE -SecretKey wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY -StoreAs TestUser1
PS > Initialize-AWSDefaults -ProfileName TestUser1 -Region ap-southeast-2
这大致就是我的代码在 boto 上的样子,它按 IAM 角色过滤实例,然后将其私有 IP 地址存储在列表中。
instancelist = conn.get_only_instances(filters={"iam-instance-profile.arn": "arn:aws:iam::123456789012:instance-profile/TestRole"})
aList = list()
for instance in instancelist:
output1 = instance.private_ip_address
aList.append(output1)
在 PowerShell 中这样做的等效方法是什么?
在弄清楚代码之前,我不得不反复研究代码。事实证明,我可以使用与我在 boto 代码中所做的相同的过滤器参数和值。!
这是我的代码和输出:
代码:
$filter = New-Object Amazon.EC2.Model.Filter -Property @{Name = "iam-instance-profile.arn"; Value = "arn:aws:iam::123456789012:instance-profile/TestRole"}
$ec2 = @(Get-EC2Instance -Filter $filter)
$ec2instances = $ec2.instances #returns instances with its attributes
$ec2instances.privateipaddress #returns private ip addresses of the filtered instances
输出:
PS > & "pathtocode.ps1"
10.200.1.11
10.200.1.45
10.200.1.132