정책 요약(서비스 목록) - 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. 정책을 편집하고 다음을 선택하여 정책 요약에 반영된 변경 사항을 봅니다. 문제가 계속 표시되면 이전을 선택하여 편집 화면으로 돌아갑니다.

  5. 변경 사항을 저장하려면 변경 사항 저장을 선택합니다.

JSON 옵션을 사용하여 정책 요약에 대한 정책을 편집하려면
  1. 이전 절차에서 설명한 대로 정책의 요약을 엽니다.

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

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

    참고

    언제든지 시각적 편집기 옵션과 JSON 편집기 옵션을 서로 전환할 수 있습니다. 그러나 변경을 적용하거나 시각적 편집기 옵션에서 다음을 선택한 경우 IAM은 시각적 편집기에 최적화되도록 정책을 재구성할 수 있습니다. 자세한 내용은 정책 재구성 단원을 참조하십시오.

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

  4. 정책을 편집합니다. 정책 검증 동안 생성된 모든 보안 경고, 오류 또는 일반 경고를 해결하고 다음을 선택합니다. 문제가 계속 표시되면 이전을 선택하여 편집 화면으로 돌아갑니다.

  5. 변경 사항을 저장하려면 변경 사항 저장을 선택합니다.

정책 요약의 요소 이해

다음의 정책 세부 정보 페이지 예시에서 SummaryAllElements 정책은 사용자에 직접 연결된 관리형 정책(고객 관리형 정책)입니다. 이 정책이 확장되어 정책 요약을 표시합니다.


        정책 요약 대화 상자 이미지

이전 이미지에서 정책 요약은 정책 페이지에 표시되어 있습니다.

  1. 권한 탭에는 정책에 정의된 권한이 포함됩니다.

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

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

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

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

다음 정책 요약 테이블 이미지는 정책 세부 정보 페이지에서 확장된 SummaryAllElements 정책을 표시합니다.


        정책 요약 대화 상자 이미지

이전 이미지에서 정책 요약은 정책 페이지에 표시되어 있습니다.

  1. IAM에서 인식하는 해당 서비스의 경우 정책이 서비스 사용을 허용하거나 명시적으로 거부하는지 여부에 따라 서비스가 정렬됩니다. 이 예시에서는 정책에 Amazon S3 서비스에 대한 Deny 설명문과 결제, CodeDeploy 및 Amazon EC2 서비스에 대한Allow 설명문이 포함됩니다.

  2. 서비스 - 이 열에는 정책에서 정의된 서비스가 나열되고 각 서비스의 세부 정보를 제공합니다. 정책 요약 테이블에서 각 서비스 이름은 서비스 요약 테이블에 대한 링크(서비스 요약(작업 목록) 단원 참조)입니다. 이 예시에서는 Amazon S3, 결제, CodeDeploy 및 Amazon EC2 서비스에 대해 권한이 정의되어 있습니다.

  3. 액세스 수준 - 이 열은 정책이 각 액세스 수준(List, Read, Write, Permission ManagementTagging)의 작업에 대해 Full 또는 Limited 중 어느 권한을 정의했는지 보여줍니다. 액세스 레벨 요약에 대한 자세한 정보 및 예시는 정책 요약의 액세스 레벨 이해하기 섹션을 참조하세요.

    • 전체 액세스 - 이 항목은 해당 서비스가 서비스에 대해 사용 가능한 4개 액세스 수준 모두에서 모든 작업에 액세스할 수 있음을 나타냅니다.

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

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

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

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

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

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

    • Resource text - 정책이 서비스의 리소스 하나를 포함합니다. 이 예시에서는 나열된 작업이 DeploymentGroupName CodeDeploy 리소스에서만 허용됩니다. 서비스가 IAM에 제공하는 정보에 따라 ARN이 표시되거나 정의된 리소스 유형이 표시될 수 있습니다.

      참고

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

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

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

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

    • 다중 - 정책이 서비스에 대해 둘 이상의 조건을 포함합니다. 정책에 대한 여러 조건을 각각 보려면 JSON을 선택하여 정책 문서를 봅니다.

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

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


        정책 요약 대화 상자 이미지

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

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

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

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

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

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

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

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

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

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

  4. 정의된 리소스가 없음 - 서비스에 정의된 작업이 있지만, 지원되는 리소스가 정책에 없으므로 서비스가 권한을 제공하지 않습니다. 이 경우 정책에 CodeCommit 작업이 포함되지만 CodeCommit 리소스는 포함되지 않습니다.

  5. DeploymentGroupName | 문자열 | 전체, 리전 | 문자열 | us-west-2 | 하나 이상의 작업에 해당 리소스가 없습니다. - 서비스에 정의된 작업이 한 개 있고, 지원 리소스가 없는 작업이 한 개 이상 있습니다.

  6. 없음 | 하나 이상의 조건이 적용할 작업이 없습니다. - 서비스에 지원 작업이 없는 조건 키가 한 개 이상입니다.

SummaryAllElements JSON 정책 문서

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

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "billing:Get*", "payments:List*", "payments:Update*", "account:Get*", "account:List*", "cur:GetUsage*" ], "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" ] } } } ] }