我想要做的事情(繼續我之前詢問的問題:How can I filter AWS Instances by IAM role in powershell and get the private ip address of that instance?)獲取具有特定IAM角色的實例的私有IP地址。我已經得到了完美的作品代碼:AWS IAM策略通過關聯的IAM角色限制實例
$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
$ipaddress = $ec2instances.privateipaddress
不過,現在不是在做代碼過濾器,我想創建限制用戶的IAM策略只能夠得到關於具有特定IAM角色的實例的信息。因此,如果他們嘗試get-ec2instance
(例如),它應該只返回有關實例的信息,而不是帳戶中的所有實例。
這是我的IAM政策,我有:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"ec2:DescribeInstances"
],
"Effect": "Allow",
"Resource": [
"*"
],
"Condition": {
"ArnEquals": {
"ec2:InstanceProfile": "arn:aws:iam::12356789102:instance-profile/TestRole"
}
}
}
]
}
然而,當我在PowerShell中運行get-ec2instance
,有人告訴我,我無權執行該操作。我認爲這可能是因爲get-ec2instance
僅適用於所有實例,但我不確定。
我將不勝感激,謝謝!
我看了一下你放在這裏的鏈接,但只是一個問題,'get-ec2instance'不會是這裏理想的命令,因爲這將要求查看所有實例。是否有另一個類似的命令,我可以使用它將返回實例的屬性(與IAM角色),甚至只是這些實例的私有IP地址(與IAM角色)? –
以下是關於資源標記和從此網站所說的內容:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policy-structure.html#UsingWithEC2_Actions我試圖將'arn:aws:iam :: 12356789102:iam策略的'Resource'部分中的instance-profile/TestRole'。它仍然不起作用,但有沒有辦法從那裏? –
等通過一堆文件閱讀,並明白'ec2:DescribeInstances'不能被過濾,因爲該功能不受支持。我決定堅持使用我的原始代碼獲取所有實例並通過它們進行篩選!感謝您的建議雖然:) –