gpt4 book ai didi

amazon-web-services - 允许用户通过标签管理 EC2

转载 作者:行者123 更新时间:2023-12-04 08:03:47 26 4
gpt4 key购买 nike

我正在尝试为我们的供应商启用对 EC2 的访问。所以,我做了什么:我为专用 EC2 实例添加标签“供应商”。

enter image description here

然后,我在下面添加策略 ..

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:*",
"Resource": "*",
"Condition": {
"StringEquals": {
"ec2:ResourceTag/Vendor": "Takamol"
}
}
},
{
"Effect": "Deny",
"Action": [
"ec2:CreateTags",
"ec2:DeleteTags",
"ec2:TerminateInstances"
],
"Resource": "*"
}
]
}

然而,即使策略条件受标签“供应商”限制(如您所见),用户(属于附加组)也看不到任何 EC2 实例。

如何允许用户仅管理具有标签的 EC2 实例:Vendor = Takamol

最佳答案

您想要实现的目标是不可能的。这是因为一个叫做“资源级别权限”的概念。支持资源级别权限的操作允许您使用 IAM 允许/拒绝用户对相关资源的某些子集执行操作的能力,例如具有特定标签、S3 存储桶、VPC 等的 EC2 实例。不支持资源级别权限的操作只能针对所有资源允许/拒绝,并且只能允许用户在资源为 * 和 where 的语句中执行没有条件。

不幸的是,并非所有 EC2 操作都支持资源级别权限。您的用户看不到具有上述 IAM 策略的任何 EC2 实例的原因是 ec2:Describe* API 调用(在控制台中用于列出帐户中的所有实例)不支持资源级权限。

因此,即使 ec2:Describe* 属于 ec2:*,您允许在策略的第一个语句中标记实例,ec2:Describe* 的条件评估为拒绝所有 ec2:Describe*。

人们通常最终做的是允许供应商访问查看帐户中的所有实例,然后只允许他们对一组特定实例授予他们所需的额外权限。请参阅下面的策略,它将允许用户查看所有实例,但只能启动、停止和重启具有所需标签的实例。

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowSeeEverything",
"Effect": "Allow",
"Action": [
"ec2:Describe*"
],
"Resource": [
"*"
]
},
{
"Sid": "ThingsIAllowThemToDoForTaggedEc2s",
"Effect": "Allow",
"Action": [
"ec2:RebootInstances",
"ec2:StartInstances",
"ec2:StopInstances"
],
"Condition": {
"StringEquals": {
"ec2:ResourceTag/Vendor": "Takamol"
}
},
"Resource": [
"*"
]
}
]

EC2 API 调用支持资源级权限的列表以及支持的条件记录在 Supported Resource-Level Permissions for Amazon EC2 API Actions 中。 .我还建议阅读 Demystifying EC2 Resource-Level Permissions博文。

关于amazon-web-services - 允许用户通过标签管理 EC2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43378609/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com