当前位置: 首页 > 知识库问答 >
问题:

用于按关联IAM角色限制实例的AWS IAM策略

松德曜
2023-03-14

我想做什么(继续我之前问过的一个问题:如何通过PowerShell中的IAM角色过滤AWS实例,并获取该实例的私有IP地址?)获取具有特定IAM角色的实例的专用ip地址。我有一个完美的代码:

$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只适用于所有实例,但我不确定。

谢谢你的帮助,谢谢!

共有2个答案

陆昕
2023-03-14

问题的原因是get-ec2instance试图描述所有实例,包括没有为其分配适当角色的实例。

当谈到描述EC2实例或列出S3存储桶时,您应该能够列出所有内容,否则会收到403错误。

我建议您仅出于html" target="_blank">安全目的限制对IAM的访问,并继续使用代码iteslf筛选您的实例。

请让我知道它是否适合你。

另外,当您决定使用IAM角色来组织您的访问时,您可能走错了方向。AWS提供了一种称为“资源标记”的功能。它的直接目的是根据结构组织资源和应用权限。更多信息请点击此处:http://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_examples.html#iam-policy-example-ec2-tag-permissions

东方英豪
2023-03-14

到目前为止,没有任何选项可以限制IAM用户查看特定的EC2实例

只有一个API调用存在ec2 descripe实例,这表明需要对所有实例拥有全部权限,或者不拥有任何权限。

 类似资料:
  • 在我们的应用程序中,我们使用自定义角色访问aws API。在开发者环境中,我们在app.config中提供访问密钥和秘密密钥,它工作得很好。 在prod环境中,我们设置了一个IAM角色,该角色对自定义角色具有必要的权限,EC2实例将使用该IAM角色启动。当我们尝试使用代码切换角色时,我们会遇到以下错误 消息:用户:arn:aws:sts::XXXXXXXXX:假定角色//i-0490fbbb5ea

  • 我已经读了很多文档,看了很多视频,但是我对IAM角色和Bucket策略仍然很困惑。让我困惑的是: 1)我创建了一个Bucket。那时我可以将它公有或私有。如果我将它公有,那么任何人或任何应用程序都可以“看到”Bucket中的对象。我认为可以将权限设置为添加/删除/获取/列出Bucket中的对象。如果是这样,那么为什么我需要为S3 Bucket添加任何IAM角色,或者添加任何Bucket策略(???

  • 读后http://en.wikipedia.org/wiki/Role-based_access_control看到人们建立授权/访问控制的方式,我想到了这个问题:“为什么我们在检查用户是否被允许执行X操作时检查用户的角色,而不是检查他们的权限?” 这就是我所理解的,用户有角色,角色有权限,这就是用户可以拥有权限的方式(用户不能明确地拥有分配给它的权限,它通过拥有角色获得权限) 我认为,在处理添加

  • 对于小型CloudFormation和CodePipeline模板,我们可以“尝试-测试”以获得所需角色的最低权限IAM策略。 这通常包括: 从最小策略开始 创建堆栈 它失败与-堆栈没有权限的一些服务:一些行动 将服务操作添加到策略 更新堆栈并重试 这种方法对于较大的CloudFormation模板来说太耗时了 您如何制定最低特权IAM策略? 思想: > 允许"*",然后为事件刮取云迹,并为列出的

  • 我正尝试使用IAM角色从spark读取s3桶中的csv文件,但在上获得 我安装了没有hadoop的Spark 2.4.4,安装了hadoop 3.2.1以及hadoop-aws-3.2.1.jar和aws-java-sdk-1.11.655.jar。我必须安装一个没有hadoop的spark版本,因为作为spark构建一部分的hadoop jars是来自2016年的2.7.3版本。 附加到角色的“

  • 因此,在我们的Laravel应用程序中有两个角色(internet客户端和管理员)。下面是DB模式 我们想允许www.site。com/登录路径,仅记录具有“客户端”角色的用户。 请注意,一旦用户登录并强制注销,我们不想检查角色。 谢谢