정책 요약(서비스 목록) - AWS Identity and Access Management

정책 요약(서비스 목록)

정책은 3가지 테이블, 즉 정책 요약, 서비스 요약, 작업 요약으로 요약됩니다. 정책 요약 테이블에는 서비스 목록과 선택한 정책에 의해 정의된 권한의 요약이 포함되어 있습니다.


      3가지 테이블과 관계를 보여 주는 정책 요약 다이어그램 이미지

정책 요약 테이블은 하나 이상의 Uncategorized services(미분류 서비스), 명시적 거부, 허용 섹션으로 그룹화됩니다. IAM에서 인식하지 못하는 서비스가 정책에 포함되어 있으면 해당 서비스는 테이블의 Uncategorized services(미분류 서비스) 섹션에 포함됩니다. IAM에서 서비스를 인식하면 해당 서비스는 정책(Deny 또는 Allow)의 효과에 따라 테이블의 명시적 거부 또는 허용 섹션에 포함됩니다.

정책 요약 보기

사용자 페이지에서 사용자에게 연결된 정책에 대한 요약을 볼 수 있습니다. 역할 페이지에서 역할에 연결된 정책에 대한 요약을 볼 수 있습니다. 정책 페이지에서 관리형 정책에 대한 정책 요약을 볼 수 있습니다. 정책에 정책 요약이 포함되지 않은 경우 정책 요약 누락을 참조하여 이유를 알아보십시오.

정책 페이지에서 정책 요약을 확인하려면

  1. AWS Management Console에 로그인한 다음 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 정책을 선택합니다.

  3. 정책 목록에서 보려는 정책의 이름을 선택합니다.

  4. 정책 요약을 보려면 해당 정책의 요약 페이지에서 권한 탭을 확인합니다.

사용자에 연결된 정책의 요약을 확인하려면

  1. AWS Management Console에 로그인한 다음 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 사용자를 선택합니다.

  3. 사용자 목록에서 정책을 보려는 사용자의 이름을 선택합니다.

  4. 사용자에게 직접 연결되거나 그룹에서 연결된 정책의 목록을 보려면 해당 사용자의 요약 페이지에서 권한 탭을 봅니다.

  5. 사용자에 대한 정책 테이블에서 보려는 정책의 행을 확장합니다.

역할에 연결된 정책의 요약 정보를 보려면

  1. AWS Management Console에 로그인한 다음 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 역할을 선택합니다.

  3. 역할 목록에서 정책을 보려는 역할의 이름을 선택합니다.

  4. 역할의 요약 페이지에서 권한 탭을 보고 역할에 연결된 정책 목록을 확인합니다.

  5. 역할에 대한 정책 테이블에서 보려는 정책의 행을 확장합니다.

정책을 편집하여 경고 수정

정책 요약을 보는 동안 정책에서 예상한 권한을 제공하지 않는다는 알림이나 오타를 찾을 수 있습니다. 정책 요약을 직접 편집할 수 없습니다. 그러나 정책 요약이 보고하는 것과 동일한 여러 개의 오류 및 경고를 파악하는 시각적 정책 편집기를 사용하여 고객 관리형 정책을 편집할 수 있습니다. 그런 다음 정책 요약의 변경 사항을 확인하여 모든 문제가 수정되었는지 확인할 수 있습니다. 인라인 정책을 편집하는 방법에 대해 자세히 알아보려면 IAM 정책 편집 단원을 참조하십시오. 단, AWS 관리형 정책은 편집할 수 없습니다.

시각적 편집기 탭을 사용하여 정책 요약에 대한 정책을 편집하려면

  1. 이전 절차에서 설명한 대로 정책의 요약을 엽니다.

  2. 정책 편집을 선택합니다.

    사용자 페이지에서 해당 사용자에게 연결된 고객 관리형 정책을 편집하려는 경우, 정책 페이지로 리디렉션됩니다. 고객 관리형 정책은 정책 페이지에서만 편집할 수 있습니다.

  3. 편집 가능한 정책의 시각적 표시를 보려면 시각적 편집기 탭을 선택합니다. IAM은 시각적 편집기에서 모양을 최적화하고 문제를 쉽게 찾아 수정하기 위해 정책을 재구성할 수 있습니다. 페이지의 경고 및 오류 메시지는 정책 문제를 수정하도록 안내할 수 있습니다. IAM이 정책을 재구성하는 방법에 대한 자세한 내용은 정책 재구성 단원을 참조하십시오.

  4. 정책을 편집하고 정책 검토를 선택하여 정책 요약에 반영된 변경 사항을 봅니다. 문제가 계속 표시되면 [이전(Previous)]을 선택하여 편집 화면으로 돌아갑니다.

  5. [Save]를 선택하여 변경 사항을 저장합니다.

JSON 탭을 사용하여 정책 요약에 대한 정책을 편집하려면

  1. 이전 절차에서 설명한 대로 정책의 요약을 엽니다.

  2. { } JSON정책 요약을 선택하여 정책 요약과 JSON 정책 문서를 비교합니다. 이 정보를 사용하여 정책 문서에서 변경할 행을 결정할 수 있습니다.

  3. 정책 편집을 선택한 다음 JSON 탭을 선택하여 JSON 정책 문서를 편집합니다.

    참고

    언제든지 Visual editor(시각적 편집기)JSON 탭을 전환할 수 있습니다. 그러나 변경을 수행하거나 Visual editor(시각적 편집기) 탭에서 정책 검토를 선택한 경우 IAM은 시각적 편집기에 최적화되도록 정책을 재구성할 수 있습니다. 자세한 내용은 정책 재구성 섹션을 참조하세요.

    사용자 페이지에서 해당 사용자에게 연결된 고객 관리형 정책을 편집하려는 경우, 정책 페이지로 리디렉션됩니다. 고객 관리형 정책은 정책 페이지에서만 편집할 수 있습니다.

  4. 정책을 편집합니다. 정책 검증 중에 생성된 보안 경고, 오류 또는 일반 경고를 해결한 다음 정책 검토(Review policy)를 선택합니다. 문제가 계속 표시되면 [이전(Previous)]을 선택하여 편집 화면으로 돌아갑니다.

  5. [Save]를 선택하여 변경 사항을 저장합니다.

정책 요약의 요소 이해

다음의 사용자 세부 정보 페이지 예제에서는 PolSumUser 사용자에 8개 정책이 연결되어 있습니다. SummaryAllElements 정책은 사용자에 직접 연결된 관리형 정책(고객 관리형 정책)입니다. 이 정책이 확장되어 정책 요약을 표시합니다. 이 정책의 JSON 정책 문서를 보려면 SummaryAllElements JSON 정책 문서 단원을 참조하십시오.


        정책 요약 대화 상자 이미지

이전 이미지에서 정책 요약은 사용자 세부 정보 페이지에 표시되어 있습니다.

  1. 사용자의 권한 탭에는 PolSumUser 사용자에 연결된 정책이 포함됩니다.

  2. SummaryAllElements 정책은 사용자에게 연결된 몇 가지 정책 중 하나입니다. 정책 요약을 보려면 정책을 확장합니다.

  3. 정책에서 정책에 정의된 일부 작업, 리소스 및 조건에 권한을 부여하지 않는 경우 페이지 상단에 경고 또는 오류 배너가 나타납니다. 그런 다음 정책 요약에 문제에 대한 세부 정보가 포함됩니다. 정책 요약이 정책에서 부여하는 권한을 이해하고 문제를 해결하는 데 얼마나 도움이 되는지 알아보려면 정책이 필요한 권한을 부여하지 않음 단원을 참조하십시오.

  4. 정책 요약{ } JSON 버튼을 사용하여 정책 요약과 JSON 정책 문서 사이를 전환합니다.

  5. 정책 시뮬레이션(Simulate policy)을 선택하면 정책을 테스트하기 위한 정책 시뮬레이터가 열립니다.

  6. 검색 상자를 사용하여 서비스 목록을 제한하면 용이하게 특정 서비스를 찾을 수 있습니다.

  7. 확장된 보기는 SummaryAllElements 정책의 세부 정보를 보여 줍니다.

다음 정책 요약 테이블 이미지는 PolSumUser 사용자 세부 정보 페이지에서 확장된 SummaryAllElements 정책입니다.


        정책 요약 대화 상자 이미지

이전 이미지에서 정책 요약은 사용자 세부 정보 페이지에 표시되어 있습니다.

  1. 서비스 – 이 열에는 정책에서 정의된 서비스가 나열되고 각 서비스의 세부 정보를 제공합니다. 정책 요약 테이블에서 각 서비스 이름은 서비스 요약 테이블에 대한 링크(서비스 요약(작업 목록) 단원 참조)입니다. 이 예제에서는 Amazon S3, 결제 및 Amazon EC2 서비스에 대해 권한이 정의되어 있습니다. 정책은 IAM에서 인식하지 못하는 (잘못 입력한) codedploy 서비스에 대한 권한도 정의합니다.

  2. Unrecognized services(미분류 서비스) – 이 정책에는 인식할 수 없는 서비스(이 경우 codedploy )가 포함됩니다. 이 경고를 사용하여 서비스 이름에 오타가 포함되어 있는지 확인할 수 있습니다. 서비스 이름이 정확하면 서비스는 정책 요약을 지원할 수 없거나 프리뷰에 있거나 사용자 지정 서비스일 수 있습니다. 일반적으로 사용할 수 있는(GA) 서비스에 대한 정책 요약 지원을 요청하려면 서비스가 IAM 정책 요약을 지원하지 않음을 참조하십시오. 이 예제에서는 정책이 codedploy가 누락된 인식할 수 없는 e 서비스를 포함합니다. 이 오타로 인해 정책은 예상되는 AWS CodeDeploy 권한을 제공하지 않습니다. 정확한 codedeploy 서비스 이름을 포함하도록 정책을 편집할 수 있습니다. 그러면 서비스가 정책 요약에 나타납니다.

  3. IAM에서 인식하는 해당 서비스의 경우 정책이 서비스 사용을 허용하거나 명시적으로 거부하는지 여부에 따라 서비스가 정렬됩니다. 이 예제에서는 정책이 Amazon S3 서비스에 대한 AllowDeny 설명문을 포함합니다. 따라서 정책 요약의 명시적 거부허용 섹션 모두에 S3가 포함되어 있습니다.

  4. Show remaining 100(나머지 100개 보기) – 이 링크를 선택하여 정책에 의해 정의되지 않은 서비스를 포함하도록 테이블을 확장합니다. 이러한 서비스는 이 정책 내에서 명시적으로 거부(또는 기본적으로 거부)됩니다. 그러나 다른 정책 문으로 서비스를 사용하여 허용하거나 명시적으로 거부할 수 있습니다. 정책 요약에는 단일 정책의 권한이 요약되어 있습니다. AWS 서비스가 지정된 요청을 허용하거나 거부할지 여부를 결정하는 방법에 대해 알아보려면 정책 평가 로직을 참조하십시오.

  5. EC2 – 이 서비스에는 미인식 작업이 포함됩니다. IAM은 정책 요약을 지원하는 서비스 이름, 작업 및 리소스 유형을 인식합니다. 서비스는 인식되지만 인식되지 않은 작업을 포함하면 IAM은 해당 서비스 옆에 경고를 포함합니다. 이 예제에서는 IAM이 한 개 이상의 Amazon EC2 작업을 인식하지 못합니다. 인식할 수 없는 작업에 대해 자세히 알아보고 S3 서비스 요약에서 인식할 수 없는 작업을 보려면 서비스 요약(작업 목록) 단원을 참조하십시오.

    참고

    IAM은 정책 요약을 지원하는 서비스의 이름, 작업 및 리소스 유형을 검토합니다. 그러나 존재하지 않는 리소스 값이나 조건이 정책 요약에 포함될 수 있습니다. 항상 정책 시뮬레이터로 정책을 테스트합니다.

  6. S3 – 이 서비스에는 미인식 리소스가 포함됩니다. IAM은 정책 요약을 지원하는 서비스 이름, 작업 및 리소스 유형을 인식합니다. 서비스가 인식되지만 인식되지 않는 리소스 유형이 있는 경우 IAM은 해당 서비스 옆에 경고를 표시합니다. 이 예제에서는 IAM이 한 개 이상의 Amazon S3 작업을 인식하지 못합니다. 인식할 수 없는 리소스에 대해 자세히 알아보고 S3 서비스 요약에서 인식할 수 없는 리소스 유형을 보려면 서비스 요약(작업 목록) 단원을 참조하십시오.

  7. Access level(액세스 레벨) – 이 열은 정책이 각 액세스 레벨(List, Read, Write, 및 Permissions management)의 작업에 대해 Full 또는 Limited 중 어느 권한을 정의했는지 보여줍니다. 액세스 레벨 요약에 대한 자세한 정보 및 예제는 정책 요약에서 액세스 레벨 요약 이해 단원을 참조하십시오.

    • Full access(전체 액세스) – 이 항목은 해당 서비스가 서비스에 대해 사용 가능한 4개 액세스 레벨 모두에서 모든 작업에 액세스할 수 있음을 나타냅니다. 이 예제에서는 이 행이 테이블의 명시적 거부 섹션에 포함되어 있으므로 정책에 포함된 리소스에서 모든 Amazon S3 작업이 거부됩니다.

    • 항목에 Full access(전체 액세스)가 포함되지 않은 경우 해당 서비스는 서비스를 위한 모든 작업이 아니라 일부 작업에 액세스할 수 있습니다. 그러면 액세스 권한이 4개 액세스 레벨(List, Read, WritePermissions management) 각각에 대한 다음의 설명으로 정의됩니다.

      Full(전체): 정책이 나열된 각 액세스 레벨 분류의 모든 작업에 대한 액세스 권한을 제공합니다. 이 예제에서는 정책이 모든 결제 Read 작업에 대한 액세스 권한을 제공합니다.

      Limited(제한): 정책이 나열된 각 액세스 레벨 분류에서 하나 이상의 작업(모든 작업은 아님)에 대한 액세스 권한을 제공합니다. 이 예제에서는 정책이 일부 결제 Write 작업에 대한 액세스 권한을 제공합니다.

  8. 리소스 – 이 열은 정책이 각 서비스에 대해 지정한 리소스를 보여줍니다.

    • 다중 – 정책이 서비스 내 둘 이상(모든 리소스는 아님)의 리소스를 포함합니다. 이 예제에서는 둘 이상의 Amazon S3 리소스에 대한 액세스가 명시적으로 거부됩니다.

    • All resources(모든 리소스) – 정책이 서비스의 모든 리소스에 대해 정의되어 있습니다. 이 예제에서는 정책이 모든 결제 리소스에 대해 나열된 작업을 수행할 수 있도록 허용합니다.

    • Resource text – 정책이 서비스의 리소스 하나를 포함합니다. 이 예제에서는 나열된 작업이 developer_bucket Amazon S3 버킷 리소스에서만 허용됩니다. 서비스가 IAM에 제공하는 정보에 따라 arn:aws:s3:::developer_bucket/* 등의 ARN이 표시되거나 BucketName = developer_bucket 등의 정의된 리소스 유형이 표시될 수 있습니다.

      참고

      이 열은 다른 서비스의 리소스를 포함할 수 있습니다. 리소스를 포함하는 정책 설명에 동일한 서비스의 작업과 리소스를 모두 포함하지 않으면 정책에 일치하지 않는 리소스가 포함됩니다. IAM은 정책을 생성하거나 정책 요약에서 정책을 볼 때 일치하지 않는 리소스에 대해 경고하지 않습니다. 이 열에 일치하지 않는 리소스가 포함되어 있으면 정책에 오류가 있는지 검토해야 합니다. 정책을 더 잘 이해하려면 항상 정책 시뮬레이터로 테스트합니다.

  9. Request condition(요청 조건) – 이 열은 리소스와 연결된 서비스 또는 작업에 조건이 적용되는지 여부를 나타냅니다.

    • 없음 – 정책이 서비스에 대한 조건을 포함하지 않습니다. 이 예제에서는 Amazon S3 서비스에서 거부된 작업에 적용된 조건이 없습니다.

    • Condition text – 정책이 서비스에 대한 조건 하나를 포함합니다. 이 예제에서는 소스의 IP 주소가 203.0.113.0/24와 일치하는 경우에만 나열된 결제 작업이 허용됩니다.

    • 다중 – 정책이 서비스에 대해 둘 이상의 조건을 포함합니다. 이 예제에서는 나열된 Amazon S3 작업에 대한 액세스가 복수의 조건에 따라 허용됩니다. 정책에 대한 여러 조건을 각각 보려면 { } JSON을 선택하여 정책 문서를 봅니다.

정책 또는 정책 내 요소가 권한을 부여하지 않는 경우 IAM은 정책 요약에 추가 경고 및 정보를 제공합니다. 다음 정책 요약 테이블은 PolSumUser 사용자 세부 정보 페이지에 확장된 Show remaining 100(나머지 100개 보기) 서비스와 가능한 경고를 보여줍니다.


        정책 요약 대화 상자 이미지

앞의 그림에는 권한이 없이 정의된 작업, 리소스 또는 조건을 포함하는 모든 서비스가 나와 있습니다.

  1. Resource warnings(리소스 경고) – 포함된 모든 작업이나 리소스에 대해 권한을 제공하지 않는 서비스의 경우 테이블의 리소스 열에 다음 경고 중 하나가 나타납니다.

    • 정의된 리소스가 없습니다. – 서비스에 작업이 정의되었지만 정책에 지원되는 리소스가 포함되지 않았음을 의미합니다.

    • 하나 이상의 작업이 적용할 리소스가 없습니다. – 서비스에 정의된 작업이 있지만 일부 작업에 지원되는 리소스가 없음을 의미합니다.

    • 하나 이상의 리소스가 적용할 작업이 없습니다. – 서비스에 정의된 리소스가 있지만 일부 리소스에 지원 작업이 없음을 의미합니다.

    서비스에 적용 가능한 리소스가 없는 작업과 적용 가능한 작업이 없는 리소스가 있는 경우, One or more resources do not have an applicable action(하나 이상의 리소스에 적용할 작업이 없습니다). 경고가 표시됩니다. 그 이유는 서비스에 대한 서비스 요약을 볼 때 어떤 작업에도 적용되지 않는 리소스가 표시되지 않기 때문입니다. ListAllMyBuckets 작업의 경우 리소스 수준 권한을 지원하지 않고 s3:x-amz-acl 조건 키를 지원하지 않기 때문에 이 정책에 마지막 경고가 포함됩니다. 리소스 문제나 조건 문제를 수정한 경우 나머지 문제가 세부 경고에 나타납니다.

  2. Request condition warnings(요청 조건 경고) – 포함된 모든 조건에 대해 권한을 제공하지 않는 서비스의 경우 테이블의 Request condition(요청 조건)열에 다음 경고 중 하나가 나타납니다.

    • 하나 이상의 작업이 적용할 조건이 없습니다. – 서비스에 정의된 작업이 있지만 일부 작업에 지원되는 조건이 없음을 의미합니다.

    • 하나 이상의 조건이 적용할 작업이 없습니다. – 서비스에 정의된 조건이 있지만 일부 조건에 지원 작업이 없음을 의미합니다.

  3. Multiple | 하나 이상의 작업이 적용할 리소스가 없습니다. – Amazon S3의 Deny 문에 리소스가 두 개 이상 포함되어 있습니다. 또한 작업이 두 개 이상 포함되어 있으며, 일부 작업은 리소스를 지원하고, 일부 작업은 리소스를 지원하지 않습니다. 정책을 보려면 SummaryAllElements JSON 정책 문서를 참조하십시오. 이 경우 정책에는 모든 Amazon S3 작업과, 정의된 버킷 또는 버킷 객체에서 수행될 수 있는 작업만 포함됩니다.

  4. 줄임표(…)는 모든 서비스가 페이지에 포함되었지만 이 정책과 관련된 정보가 있는 행만 표시되었음을 나타냅니다. AWS Management Console에서 이 페이지를 보면 모든 AWS 서비스를 볼 수 있습니다.

  5. 테이블 행의 배경색은 어떤 권한도 부여하지 않는 서비스를 나타냅니다. 정책 요약에서 이러한 서비스에 대한 추가 정보를 볼 수 없습니다. 흰색 행의 서비스의 경우, 서비스 이름을 선택하여 서비스 요약(작업 목록) 페이지를 볼 수 있습니다. 이 페이지에는 해당 서비스에 대해 부여된 권한에 대한 자세한 정보가 표시됩니다.

  6. 없음 - 정의된 작업이 없습니다. – 서비스가 리소스나 조건으로 정의되었지만, 서비스에 대해 포함된 작업이 없으며 따라서 서비스가 권한을 제공하지 않음을 의미합니다. 이 경우 정책에 CodeBuild 리소스가 포함되지만 CodeBuild 작업은 포함되지 않습니다.

  7. 정의된 리소스가 없습니다. – 서비스에 정의된 작업이 있지만, 지원되는 리소스가 정책에 없으며 따라서 서비스가 권한을 제공하지 않습니다. 이 경우 정책에 CodeCommit 작업이 포함되지만 CodeCommit 리소스는 포함되지 않습니다.

  8. BucketName = developer_bucket, ObjectPath = All | 하나 이상의 리소스가 적용할 작업이 없습니다. – 서비스에 정의된 버킷 객체 리소스가 한 개 있고, 지원 작업이 없는 리소스가 한 개 이상 있습니다.

  9. s3:x-amz-acl = public-read | 하나 이상의 조건이 적용할 작업이 없습니다. – 서비스에 정의된 s3:x-amz-acl 조건 키가 한 개 있고, 지원 작업이 없는 조건 키가 한 개 이상 있습니다.

SummaryAllElements JSON 정책 문서

SummaryAllElements 정책은 해당 계정의 권한을 정의하는 데 사용하기 위한 것이 아닙니다. 이것은 정책 요약을 보는 중 만날 수 있는 오류와 경고를 보여주기 위한 것입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "aws-portal:ViewBilling", "aws-portal:ViewPaymentMethods", "aws-portal:ModifyPaymentMethods", "aws-portal:ViewAccount", "aws-portal:ModifyAccount", "aws-portal:ViewUsage" ], "Resource": [ "*" ], "Condition": { "IpAddress": { "aws:SourceIp": "203.0.113.0/24" } } }, { "Effect": "Deny", "Action": [ "s3:*" ], "Resource": [ "arn:aws:s3:::customer", "arn:aws:s3:::customer/*" ] }, { "Effect": "Allow", "Action": [ "ec2:GetConsoleScreenshots" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "codedploy:*", "codecommit:*" ], "Resource": [ "arn:aws:codedeploy:us-west-2:123456789012:deploymentgroup:*", "arn:aws:codebuild:us-east-1:123456789012:project/my-demo-project" ] }, { "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets", "s3:GetObject", "s3:DeletObject", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::developer_bucket", "arn:aws:s3:::developer_bucket/*", "arn:aws:autoscling:us-east-2:123456789012:autoscalgrp" ], "Condition": { "StringEquals": { "s3:x-amz-acl": [ "public-read" ], "s3:prefix": [ "custom", "other" ] } } } ] }