2017-11-07 17 views
1

이 정책을 사용하여 사용자가 인스턴스를 지정된 VPC로 시작하지 못하도록 제한하려고합니다. 그러나 나는 여전히 인스턴스를 시작할 수 있습니다! 이 정책이 효과가없는 이유는 무엇입니까? 물론, 자원 자원 ":"ARN : AWS : EC2 ::: VPC // VPC-XYZ 내 생산 템플릿IAM 사용자가 EC2 인스턴스를 특정 VPC로 시작하지 못하도록 차단하는 정책

"Statement": [ 
    { 
     "Action": [ 
      "ec2:Run*", 
      "ec2:Terminate*", 
      "ec2:Cancel*", 
      "ec2:Create*", 
      "ec2:Delete*", 
      "ec2:Modify*", 
      "ec2:Start*", 
      "ec2:Stop*" 
     ], 
     "Resource": "arn:aws:ec2:<REGION>:<ACCOUNT-ID>:vpc/<VPC-ID>/vpc-xyz", 
     "Effect": "Deny", 
     "Sid": "DenyInstanceActionsForVPC" 
    }, 
    { 
     "Condition": { 
      "StringEquals": { 
       "ec2:ResourceTag/Project": [ 
        "Cloud Services", 
        "MDH", 
        "Shine" 
       ] 
      } 
     }, 
     "Action": [ 
      "ec2:Run*", 
      "ec2:Terminate*", 
      "ec2:Cancel*", 
      "ec2:Create*", 
      "ec2:Delete*", 
      "ec2:Modify*", 
      "ec2:Start*", 
      "ec2:Stop*" 
     ], 
     "Resource": "*", 
     "Effect": "Deny", 
     "Sid": "DenyInstanceActionsForCStaggedResources" 
    } 
] 

}

답변

0

첫 번째 항목에서 실제 값을 가지고있다. 귀하의 정책에 허락이 없습니다. 그러므로 아무 것도 할 수 없어야합니다. 이 문제를 먼저 해결하십시오.

다음과 같이 귀하의 첫 번째 문을 수정

{ 
    "Sid": "DenyInstanceActionsForVPC", 
    "Effect": "Deny", 
    "Action": [ 
     "ec2:Run*", 
     "ec2:Terminate*", 
     "ec2:Cancel*", 
     "ec2:Create*", 
     "ec2:Delete*", 
     "ec2:Modify*", 
     "ec2:Start*", 
     "ec2:Stop*" 
    ], 
    "Resource": "arn:aws:ec2:REGION:ACCOUNTNUMBER:subnet/*", 
    "Condition": { 
     "StringEquals": { 
      "ec2:vpc": "arn:aws:ec2:REGION:ACCOUNTNUMBER:vpc/VPC-ID" 
     } 
    } 
}, 
+0

감사 존. 나는 잘 작동하고있는 허용 정책을 가지고 있는데 문제 요약에 포함시키지 않았다. 나는 당신의 솔루션을 시도하고 VPC-ID를 당신이 제안한대로 조건과 서브넷 ARN으로 사용했다. 건배 – gbaz