View a markdown version of this page

정책을 시뮬레이션하는 방법 - AWS Identity and Access Management

정책을 시뮬레이션하는 방법

IAM 콘솔 또는 AWS CLI 및 AWS API를 사용하여 시뮬레이션을 실행할 수 있습니다. 시뮬레이터가 평가하는 내용, 두 가지 모드 및 결과를 얻는 방법에 대한 개요는 IAM 정책 시뮬레이터로 IAM 정책 테스트을 참조하세요. 필요한 권한은 정책 시뮬레이터를 사용하는 데 필요한 권한를 참조하세요.

정책 시뮬레이션(콘솔)

IAM 콘솔의 정책 시뮬레이터에서 시뮬레이션을 실행할 수 있습니다. 탐색 창에서 정책 시뮬레이터를 선택합니다.

참고

https://policysim.aws.amazon.com/에서 독립형 정책 시뮬레이터 콘솔은 더 이상 보관되지 않습니다. IAM 콘솔에서 정책 시뮬레이터를 사용합니다.

위탁자 모드

자격 증명 선택

먼저 자격 증명을 선택합니다. 해당 계정에서 IAM 사용자, 역할 또는 그룹을 선택할 수 있습니다. 선택 후 사이드 패널에 이러한 자격 증명에 연결된 정책이 표시됩니다.

정책 포함 또는 제외

사이드 패널에는 인라인, AWS 관리형 및 고객 관리형 정책과 모든 권한 경계를 비롯하여 시뮬레이션 범위의 정책이 나열됩니다. 정책을 제외시켜 결과가 정책 없이 어떻게 변경되는지 확인한 다음 다시 포함할 수 있습니다. 액세스 권한을 부여한 정책을 제외시키면 결과가 암시적 거부로 변경됩니다.

작업 및 리소스 추가

위탁자 모드의 IAM 정책 시뮬레이터 콘솔입니다.

왼쪽 패널에서 자격 증명 및 정책을 선택한 다음, 테스트하려는 작업을 추가합니다. 리소스 선택을 지원하는 작업의 경우, 모든 리소스를 테스트 대상으로 하거나 하나 이상의 특정 리소스 ARN을 입력할 수 있습니다. 여러 작업에서 동일한 리소스 유형을 사용하는 경우, 하나의 리소스를 모든 작업에 한 번에 적용하거나 단일 작업에만 적용할 수 있습니다.

단일 리소스 유형만 필요로 하는 IAM 정책 시뮬레이터의 작업입니다.

일부 작업의 경우 시뮬레이터가 해당 작업을 평가하기 전에 관련 리소스 유형 그룹이 필요합니다. 예를 들어, ec2:RunInstances를 시뮬레이션할 때는 콘솔에 이미지, 인스턴스 및 보안 그룹을 함께 지정하고, 시나리오에 따라 서브넷 또는 볼륨을 지정하라는 메시지가 표시됩니다.

여러 리소스 유형이 필요한 IAM 정책 시뮬레이터의 작업입니다.

조건 키 값 제공

테스트하는 정책에 조건 키가 포함된 경우, 시뮬레이터는 관련 키를 나열하고 시뮬레이션을 실행하기 전에 사용자가 값을 설정할 수 있도록 합니다. 표시된 키에는 현재 선택되어 있는 정책을 반영하므로 정책을 선택하거나 지우면 해당 키가 추가되거나 제거됩니다. 값이 조건을 충족하지 못하는 경우에는 작업이 거부됩니다.

시뮬레이터는 두 위치에서 조건 키 값을 제공합니다. 전역 요청 조건은 시뮬레이션된 요청 전체에 적용됩니다. 이는 aws:로 시작하는 키(예: aws:MultiFactorAuthPresent 또는 aws:PrincipalServiceNamesList)이며, 사용자는 전역 조건 영역에서 값을 한 번 설정합니다. 정책을 선택하거나 지우면 전역 키가 추가되거나 제거되며, 입력된 값은 정잭 적용 범위가 조정될 때도 유지됩니다. 서비스별 조건은 단일 작업에 적용됩니다. 각 작업 행에는 작업이 참조하는 조건 수가 표시되고, 사용자는 행을 열어 cloudwatch:PutMetricData에 대한 cloudwatch:namespace 또는 ram:ListPermissionAssociations에 대한 ram:PermissionResourceType과 같이 해당 작업에 대한 서비스별 키를 설정합니다. 작업 행에는 전역 키와 서비스별 키가 모두 포함될 수 있으며, 조건을 충족하지 않는 값이 있으면 해당 작업이 거부됩니다.

IAM 정책 시뮬레이터는 일부 위탁자 및 조직 컨텍스트 키를 자동으로 채웁니다. 나머지 대한 값은 사용자가 제공합니다. 자동으로 채워지는 키 목록과 조건 키 평가 방법에 대한 자세한 내용은 조건 키 평가가 IAM 정책 시뮬레이터에서 작동하는 방식를 참조하세요.

조건 키를 사용하는 방법을 알아보려면 AWS 전역 조건 컨텍스트 키를 참조하세요.

권한 경계 테스트

자격 증명에 권한 경계가 있는 경우 이는 측면 패널에 표시되며 기본적으로 포함됩니다. 경계가 작업 거부의 원인인지 확인하기 위해 시뮬레이션을 경계를 제외하고 다시 실행할 수도 있습니다.

예를 들어, 경계가 허용하지 않는 자격 증명에 대해 iam:DeleteRole을 시뮬레이션한다고 가정해 보겠습니다. 결과는 권한 경계에 귀속되는 거부입니다. 이후 작업을 허용하는 정책을 추가하고 경계를 제외하면, 결과가 허용으로 변경됩니다. 이를 통해 경계가 작업을 차단하는 유일한 제어였음을 확인할 수 있습니다.

IAM 정책 시뮬레이터의 권한 경계에 귀속되는 시뮬레이션 결과입니다.

서비스 제어 정책 포함

계정이 조직의 멤버인 경우, 사이드 패널에서 서비스 제어 정책(SCPs)을 시뮬레이션에 포함할 수 있습니다. 시뮬레이터는 결과를 확인할 때 SCPs에서 자동으로 채워진 조건 키와 리소스 범위를 평가합니다. SCP가 작업을 명시적으로 거부하면, 결과는 AWS Organizations에 귀속된 명시적 거부이며 다른 정책에서 이를 허용하는 것으로 재정의할 수 없습니다. 컨트롤을 끄고 시뮬레이션을 다시 실행하면 조직의 제어 없이 결과를 확인할 수 있습니다. 자동으로 채워진 조건 키 목록은 조건 키 평가가 IAM 정책 시뮬레이터에서 작동하는 방식를 참조하세요.

참고

보안상의 이유로 시뮬레이터에는 SCP 평가의 세부 정보가 표시되지 않습니다. SCPs에서만 참조되는 조건 키는 값을 설정할 수 있도록 나열되지 않으며, 결과에 대해 반환되는 일치하는 문에는 SCPs의 문이 포함되지 않습니다. 키 및 일치하는 문은 자격 증명에 연결된 자격 증명 기반 정책 및 사용자가 제공하는 모든 정책에서 나옵니다.

리소스 기반 정책 테스트

콘솔 시뮬레이션에 리소스 기반 정책을 포함하려면, 특정 리소스 ARN을 입력하고 리소스 정책을 포함하는 옵션을 선택합니다. 리소스 기반 정책은 사이드 패널에 표시되며 결과에서 평가됩니다. 콘솔에서 Amazon S3 버킷, Amazon SQS 대기열, Amazon SNS 주제 및 Amazon Glacier 저장소에 사용할 수 있습니다.

참고

IAM 역할에는 리소스 기반 정책의 시뮬레이션이 지원되지 않습니다.

결과 읽기

결과 테이블의 각 행은 작업이 허용되는지, 암묵적으로 거부되는지, 명시적으로 거부되는지 여부와 결과에 대한 간단한 설명을 보여줍니다. 설명을 활용하여 명시적 허용이나 일치하는 문의 부재, 권한 경계, 조직 제어와 같이 결과를 결정한 정책이나 제어를 식별합니다.

사용자 지정 모드

IAM 정책 편집기를 사용하여 사용자 지정 모드에서 자격 증명 기반 정책과 권한 경계를 작성하거나 붙여넣을 수 있습니다. 이러한 정책은 자격 증명에 연결되지 않으며 사용자는 적용 전에 평가할 수 있습니다. 자격 증명 기반 정책은 여러 개를 포함할 수 있지만 시뮬레이션을 위한 권한 경계는 하나만 포함할 수 있습니다.

참고

콘솔은 사용자 지정 모드에서 사용자 지정 SCP 전달 또는 리소스 기반 정책 시뮬레이션을 지원하지 않습니다. 사용자 지정 SCP 또는 리소스 기반 정책을 시뮬레이션하려면 AWS CLI 또는 AWS API를 사용합니다.

사용자 지정 모드의 IAM 정책 시뮬레이터 콘솔.

정책 시뮬레이션(AWS CLI 및 AWS API)

AWS CLI 또는 AWS API를 사용하여 정책을 시뮬레이션하기 위해서는 일반적으로 다음 두 단계를 수행합니다.

  1. 정책을 평가하고 정책에 의해 참조된는 콘텍스트 키 목록을 반환하여 제공할 콘텍스트 키 값을 알 수 있습니다. 이 단계는 선택 사항입니다.

  2. 시뮬레이션 중에 사용할 작업, 리소스, 콘텍스트 키 값을 제공하여 정책을 시뮬레이션합니다.

각 작업은 각 리소스와 짝을 이루고, 시뮬레이션은 정책이 리소스에 대한 작업을 허용 또는 거부하는지 여부를 결정합니다. 정책이 참조하는 모든 콘텍스트 키에 대한 값을 제공할 수 있습니다. 컨텍스트 키에 값을 제공하지 않으면 시뮬레이션이 계속 실행되어 암시적 거부를 반환하고, 누락된 키가 missingContextValues에 반환되므로 어떤 값을 추가해야 하는지 알 수 있습니다. 누락된 컨텍스트 키가 SCP에서만 참조되는 경우 해당 키는 보안상의 이유로 반환되지는 않지만 결정은 여전히 받게 됩니다.

API 작업은 두 그룹으로 나뉩니다.

이러한 작업은 다음 사항 역시 지원합니다.

  • SimulateCustomPolicyOrderedOrganizationPolicyInputList를 사용하면 라이브 위탁자를 사용하지 않고도 조직의 SCP 계층 구조의 효과를 시뮬레이션할 수 있습니다.

  • SimulatePrincipalPolicyPolicyExclusionList를 사용하면 "이 정첵을 제거하면 어떻게 됩니까?" 항목을 테스트할 수 있습니다. 위탁자에 연결된 정첵을 변경하지 않는 시나리오.

  • 응답은 작업당 단일 EvaluationResult를 반환하며, 최상위 수준에서는 종합적인 결정 사항을, ResourceSpecificResults에는 리소스별 세부 정보를 반환합니다.

AWS CLI 및 AWS API 참조

정첵을 시뮬레이션하는 샘플 AWS CLI 명령은 다음을 참조하세요.