View a markdown version of this page

IAM 정책 시뮬레이터로 IAM 정책 테스트 - AWS Identity and Access Management

IAM 정책 시뮬레이터로 IAM 정책 테스트

IAM 정책 시뮬레이터를 사용하면 자격 증명 기반 정책, IAM 권한 경계, 서비스 제어 정책(SCPs) 및 제공하는 리소스 기반 정책을 테스트할 수 있습니다. AWS 서비스에 실제 요청을 보내지 않고 AWS가 해당 정책에 대해 요청을 평가하는 방법을 시뮬레이션합니다. 각 시뮬레이션은 테스트하는 모든 작업 및 리소스에 대해 이진 권한 부여 결과를 반환합니다. 해당 작업은 허용되거나 거부됩니다. 결과가 허용 또는 명시적 거부인 경우, 시뮬레이터는 해당 결과를 생성한 정책 역시 표시하기 때문에 원인을 이해하고 수정할 수 있습니다.

IAM 정책의 사용 방식과 이유에 대한 자세한 정보는 AWS Identity and Access Management의 정책 및 권한 섹션을 참조하세요.

중요

정책 시뮬레이터 결과는 실제 AWS 환경과 다를 수 있습니다. 정책 시뮬레이터를 사용하여 테스트 후 정책을 실제 AWS 환경과 비교하여 원하는 결과를 얻었는지 확인하는 것이 좋습니다. 자세한 내용은 IAM 정책 시뮬레이터의 원리 섹션을 참조하세요.

다음 스크린샷은 시뮬레이션을 실행하기 전에 ID와 해당 정책을 선택하고 테스트할 작업과 리소스를 선택하는 IAM 정책 시뮬레이터를 보여줍니다.

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

정책 시뮬레이터 모드

정책 시뮬레이터에는 다음과 같은 두 가지 모드가 있습니다. 계정에 이미 존재하는 정책을 테스트할지 아니면 아직 초안을 작성하고 있는 정책을 테스트할지에 따라 적합한 모드를 선택합니다.

위탁자 모드

위탁자 모드에서는 기존 IAM 사용자, 역할 또는 그룹에 이미 연결된 정책을 테스트합니다. 시뮬레이션을 위해 자격 증명을 하나 선택하면 시뮬레이터가 해당 자격 증명에 연결된 정책을 평가합니다. 시뮬레이션에 사용자 지정 자격 증명 정책 또는 권한 경계를 포함하거나 제외할 수도 있습니다. 이렇게 추가해도 실제로는 IAM에 연결되지 않고 위탁자에 연결된 것처럼 시뮬레이션되므로 계정은 변경되지 않습니다.

사용자 지정 모드

사용자 지정 모드에서는 직접 작성하거나 붙여넣은 하나 이상의 정책을 테스트합니다. 이 모드는 정책을 연결하기 전에 확인하는 데 유용합니다. 사용자 지정 정책은 자체적으로 시뮬레이션되며 사용자의 계정에 저장되지 않습니다.

모드 선택 및 시뮬레이션 실행에 대한 자세한 단계별 지침은 정책을 시뮬레이션하는 방법을 참조하세요.

정책 시뮬레이터로 수행할 수 있는 작업

다음은 정책 시뮬레이터로 수행할 수 있는 몇 가지 일반적인 사항입니다. API 동작과 콘솔 동작을 구분하는 방법에 대한 자세한 단계별 가이드는 정책을 시뮬레이션하는 방법에서 확인할 수 있습니다.

  • 자격 증명 기반 정책(IAM 사용자나 그룹, 역할에 이미 연결된 정책 또는 사용자가 직접 작성하거나 붙여넣는 새 정책)을 테스트합니다. 정책이 두 개 이상인 연결된 자격 증명의 경우, 모든 정책을 함께 테스트하거나 개별 정책을 선택하여 특정 리소스에 대해 어떤 작업이 허용되거나 거부되는지 확인할 수 있습니다. 새 정책은 계정에 실제로 연결되지 않고 마치 자격 증명에 연결된 것처럼 평가되며, 시뮬레이션에서만 사용되고 계정에 저장되지 않습니다.

  • 제한적인 제어가 액세스에 미치는 영향을 테스트합니다. 한 번에 하나의 권한 경계를 시뮬레이션할 수 있습니다. AWS 계정이 AWS Organizations의 조직에 속한 경우, 서비스 제어 정책(SCPs)이 자격 증명 기반 정책에 미치는 영향을 테스트할 수 있습니다. 시뮬레이터는 SCP가 작업을 허용할지 또는 거부할지 여부를 알려주지만, 보안상의 이유로 다른 정책 유형과 달리 SCP에서 일치하는 문을 표시하지는 않습니다.

  • 사용자가 제공하는 리소스 기반 정책의 효과를 테스트합니다. 시뮬레이터는 콘솔 외에 리소스 정책을 검색하지 않습니다. 시뮬레이션에 리소스 기반 정책을 포함하려면 리소스와 함께 정책을 제공합니다.

  • 실제 조건에서 특정 서비스, 작업 및 리소스를 테스트하여 결과를 결정하는 요소를 식별합니다. 예를 들어, 정책이 특정 버킷에서 Amazon S3의 ListAllMyBuckets, CreateBucketDeleteBucket 작업을 허용하는지 여부를 테스트하고, 테스트 중인 정책의 Condition 요소에서 참조되는 IP 주소 또는 날짜와 같은 컨텍스트 키를 제공할 수 있습니다. 시뮬레이터는 각 결과에 대해 액세스를 허용하거나 거부하는 특정 문을 식별합니다. 일치하는 문은 자격 증명 기반 정책 및 사용자가 제공하는 리소스 기반 정책에서 가져올 수 있습니다.

IAM 정책 시뮬레이터의 원리

시뮬레이션을 실행하면 정책 시뮬레이터는 요청 범위 내 정책, 범위 내 SCPs, 작업, 리소스, 컨텍스트 키 값과 같이 사용자가 제공하는 입력 사항을 평가합니다. 사용자 지정 모드에서 사용자는 정책을 직접 제공합니다. 위탁자 모드에서 시뮬레이터는 선택한 자격 증명에 연결된 정책을 사용하며 시뮬레이션에 더 많은 정책을 포함하거나 제외할 수 있습니다. 결과는 각 작업 및 리소스에 대한 이진 결과로 허용 또는 거부입니다.

정책 시뮬레이터는 라이브 AWS 환경과 다음과 같은 점에서 다릅니다.

  • 정책 시뮬레이터는 실제로 AWS 서비스를 요청하는 것이 아니기 때문에 실행 중인 AWS 환경을 변경하지 않고도 요청을 안전하게 테스트할 수 있습니다. 프로덕션의 실제 컨텍스트 키 값을 사용하지도 않으며 작업이 실제로 실행되지도 않으므로 서비스 응답을 반환하지 않습니다. 요청된 각 작업이 허용되는지 아니면 거부되는지 여부만 결과로 반환됩니다.

  • 정책 시뮬레이터에서 정책을 편집할 경우 이러한 변경은 시뮬레이션에만 영향을 줍니다. AWS 계정의 해당 정책은 변함없이 그대로 유지됩니다.

  • 정책 시뮬레이터는 거부 문의 조건 키 및 리소스 범위를 포함하여 SCPs를 평가하지만, 리소스 제어 정책(RCPs)은 지원하지 않습니다. VPC 엔드포인트 정책, 역할 함께 묶기 또는 단일 리소스에 대한 여러 리소스 기반 정책과 같은 일부 고급 구성의 경우 시뮬레이션 결과가 실제 동작과 다를 수 있습니다.

  • 교차 계정 시뮬레이션은 EvalDecisionDetails에서 정책 유형별 결정(자격 증명 정책 및 리소스 정책)을 반환합니다.

조건 키 평가가 IAM 정책 시뮬레이터에서 작동하는 방식

많은 정책에서는 aws:RequestedRegion 또는 aws:MultiFactorAuthPresent와 같이 조건 키에 의존하는 Condition 요소가 사용됩니다. 시뮬레이션을 실행하면 정책 시뮬레이터는 두 소스에서 조건 키 값을 가져옵니다. 그 중 하나는 시뮬레이터가 자동으로 채우는 값이고, 다른 하나는 사용자가 시뮬레이션 입력으로 제공하는 값입니다. 값이 조건을 충족하지 못하는 경우에는 작업이 거부됩니다.

시뮬레이터가 자동으로 채우는 컨텍스트

시뮬레이터는 평가를 위해 다음과 같은 위탁자 및 조직 컨텍스트 키를 채웁니다.

  • 위탁자 컨텍스트: aws:PrincipalAccount, aws:PrincipalId, aws:PrincipalType, aws:Type, aws:UserId, aws:UserName

  • 조직 컨텍스트: aws:PrincipalOrgID, aws:PrincipalOrgMasterAccountId, aws:PrincipalOrgPaths

이러한 키는 자동으로 채워지기 때문에 위탁자 또는 조직 조건을 사용하는 SCP 및 기타 정책이 올바르게 평가됩니다. 사용자는 자신의 정책이 참조하는 모든 조건 키에 대한 값을 제공합니다. 사용자는 테스트 중인 정책의 Condition 요소를 검토하고 위 목록에 없는 키에 대한 값을 제공해야 합니다.

글로벌 조건 키 및 서비스 지원

자격 증명 기반 정책 및 리소스 기반 정책의 경우, 시뮬레이터는 권한 부여를 위한 특정 전역 조건 키를 지원하는 서비스를 결정하지 않습니다. 예를 들어, 시뮬레이터는 서비스가 aws:TagKeys를 지원하지 않는다는 것을 식별하지 못합니다. 반대로 서비스 제어 정책(SCPs)은 aws:RequestedRegionaws:PrincipalAccount과 같은 전역 조건 키를 포함한 서비스 인식 로직을 통해 평가됩니다. 조건 키에 대한 자세한 내용은 AWS 전역 조건 컨텍스트 키 섹션을 참조하세요.

서비스 제어 정책(SCPs)의 조건 키

시뮬레이터는 SCPs에서 조건 키와 리소스 범위를 평가합니다. 이러한 키에 대해 값을 제공하는 방법은 시뮬레이션을 실행하는 방법에 따라 달라집니다.

  • AWS CLI 또는 AWS API를 사용하면 SCPs에 의해 참조되는 조건 키의 값을 제공할 수 있습니다.

  • IAM 콘솔에서는 자격 증명 기반 정책 또는 권한 경계, 리소스 기반 정책에 나타나는 조건 키의 값만 설정할 수 있습니다. 조건 키가 SCP에서만 참조되는 경우 콘솔에서 조건 키의 값을 설정할 수 없습니다. 하지만 동일한 조건 키가 다른 정책 중 하나에도 나타나는 경우, 설정한 값이 SCP를 포함한 전체 평가에 사용됩니다.

SCP 평가는 보안상의 이유로 누락된 컨텍스트 값을 반환하지 않습니다. 사용자는 여전히 요청에 대한 허용 또는 거부 결정을 받게 됩니다.