我尝试引入访客IAM策略来限制对EC2
实例的访问。
我试图达到这个目的,来宾政策只显示那些没有标记为'部门'或标记为' Department = Guest'。
这是我为此制定的政策:
策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"ec2:Describe*"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"ec2:ResourceTag/Department": "Guest"
},
"Null": {
"ec2:ResourceTag/Department": "true"
}
}
}
]}
"Department = Guest"
比较效果很好,但资源标签存在检查无效。
有没有其他方法可以列出实例,而这些实例并没有“部门”。标记
答案 0 :(得分:1)
由于所有EC2都描述了API调用do not support resource level permission,因此无法根据标记(通过其他方式)控制IAM用户可以在同一区域中查看哪些EC2资源的用例。
因此我们不能使用EC2条件(ec2:Region除外)" ec2:Describe *"行动。所以,要么你允许查看资源,要么不要。
答案 1 :(得分:0)
我认为当你在单个IAM语句中有多个条件时,它们会在AND
情况下处理,这意味着它们都必须为真。
尝试使用2个语句,每个语句都有一个条件:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"ec2:Describe*"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"ec2:ResourceTag/Department": "Guest"
}
}
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": [
"ec2:Describe*"
],
"Resource": "*",
"Condition": {
"Null": {
"ec2:ResourceTag/Department": "true"
}
}
}
]}