【问题标题】:IAM policy variablesIAM 政策变量
【发布时间】:2020-03-30 04:43:24
【问题描述】:

我对策略变量“${aws:username}”感到困惑,即它是我登录 AWS 账户时使用的 IAM 用户名还是 是不是我在创建实例时在标签中手动输入的标签值。

实际上,我想实现 ec2 实例的唯一所有者应该执行操作,而其他人应该被拒绝。以下政策应该有效吗?

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:*"
            ],
            "Resource": [
                "*"
            ],
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/Owner": "${aws:username}"
                }
            }
        }
    ]
}

【问题讨论】:

  • 它是当前 IAM 用户的用户名
  • 如果你打算使用*,你可以直接说Resource: "*"而不是Resource: ["*"]
  • 是您输入的当前 IAM 用户或标签值吗??
  • 最好不要做“*”,如果你是针对实例,你可以做arn:aws:ec2:*:*:instance/*

标签: amazon-web-services amazon-ec2 amazon-iam


【解决方案1】:

当 IAM 评估策略时,策略变量 ${aws:username} 将替换为当前 IAM 用户的友好名称。

https://aws.amazon.com/premiumsupport/knowledge-center/iam-ec2-resource-tags/

您的政策应该有效。

【讨论】:

  • 你能举一些友好名称的例子吗?我一头雾水,是不是你在标签里输入的名字?
  • 假设您正在创建一个 ec2 实例。您应该添加一个名为Owner 的标签,并将该值设置为您登录的帐户的用户名。如果您不按照政策要求创建标签,它将不允许您创建实例。什么是用户名?每个 IAM 用户都有一个用户名,您在创建 IAM 用户时输入该用户名。
  • 友好名称如arn:aws:iam::[account-ID]:user/Arun,这里的友好名称是Arun
  • 阿兰,感谢您的澄清。最后一个问题,我应该将标签的值输入为“用户”还是“阿伦”。还有应该使用/显示哪个值${aws:username}arn:aws:iam::[account-ID]:user/ArunuserArun?
  • 创建策略时,您将使用${aws:username 作为值。为实例创建标签时,您将使用Arun 作为标签的值。
猜你喜欢
  • 1970-01-01
  • 2020-05-24
  • 2019-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-04
  • 2021-11-14
相关资源
最近更新 更多