2017-12-19 13 views
0

게스트 IAM 정책을 도입하여 EC2 인스턴스에 대한 액세스를 제한하려고합니다. 내가 접근하려하고 있는데, 게스트 정책은 'Department'태그가 지정되지 않았거나 'Department = Guest'태그가 지정된 인스턴스 만 표시합니다. 여기 AWS 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'태그가없는 인스턴스를 나열하는 다른 방법이 있습니까?

답변

1

유스 케이스 (다른 방법으로) 태그에 기초하여 볼 수 있으며 지역 IAM 사용자의 어느 EC2 리소스 제어 모든 때문에 불가능 EC2는 API 호출 do not support resource level permission을 설명합니다.

따라서 "ec2 : Describe *"작업과 함께 EC2 조건 (ec2:Region 제외)을 사용할 수 없습니다. 따라서 리소스를 볼 수있는 권한을 주거나 권한을 부여하지 마십시오.

+0

네가 맞아! 부서 비교가 작동하지 않았다는 것을 눈치 채지 못했습니다. –

0

단일 IAM 문에 여러 조건이있는 경우 AND 상황에서 처리되므로 둘 다 true 여야합니다.

단일 조건 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" 
      } 
     } 
    } 
]}