정책 요약
정책 요약 (서비스 목록)
정책은 세 개의 테이블로 요약돼요: 정책 요약(policy summary), 서비스 요약(service summary), 작업 요약(action summary). 정책 요약 테이블에는 서비스 목록과 선택한 정책이 정의하는 권한의 요약이 들어 있어요.
출처: 문서
본문
정책 요약 테이블은 하나 이상의 Uncategorized services, Explicit deny, Allow 섹션으로 그룹화돼요. 정책이 IAM이 인식하지 못하는 서비스를 포함하면 그 서비스는 테이블의 Uncategorized services 섹션에 들어가요. IAM이 서비스를 인식하면 정책의 효과(Deny 또는 Allow)에 따라 Explicit deny 나 Allow 섹션에 들어가요.
정책 요약 요소 이해하기
정책 세부 정보 페이지의 다음 예시에서 SummaryAllElements 정책은 사용자에 직접 연결된 관리형 정책(고객 관리형 정책)이에요. 이 정책을 펼쳐 정책 요약이 표시돼요. 다음 이미지에서 정책 요약은 Policies 페이지 안에서 볼 수 있어요.
- Permissions 탭은 정책에 정의된 권한을 포함해요.
- 정책이 정책에 정의된 모든 작업, 리소스, 조건에 권한을 부여하지 않으면 페이지 맨 위에 경고·오류 배너가 나타나요. 그러면 정책 요약이 문제에 대한 세부 내용을 포함해요. 정책 요약이 정책이 부여하는 권한을 이해·문제 해결하는 데 어떻게 도움이 되는지는 내 정책이 기대한 권한을 부여하지 않는다를 참고하세요.
- Summary 와 JSON 버튼으로 정책 요약과 JSON 정책 문서를 전환할 수 있어요.
- Search 상자로 서비스 목록을 줄이고 특정 서비스를 찾을 수 있어요.
펼친 보기는 SummaryAllElements 정책의 추가 세부 내용을 보여줘요. IAM이 인식하는 서비스에 대해, 정책이 서비스 사용을 허용하는지 명시적으로 거부하는지에 따라 서비스를 정렬해요. 예시에서 정책은 Amazon S3 서비스에 대한 Deny 구문과 Billing, CodeDeploy, Amazon EC2 서비스에 대한 Allow 구문을 포함해요.
- Service — 이 열은 정책에 정의된 서비스를 나열하고 각 서비스에 대한 세부 내용을 제공해요. 정책 요약 테이블의 각 서비스 이름은 서비스 요약 (작업 목록)에서 설명하는 서비스 요약 테이블로 연결돼요. 예시에서 Amazon S3, Billing, CodeDeploy, Amazon EC2 서비스에 대한 권한이 정의돼 있어요.
- Access level — 이 열은 각 액세스 수준(List, Read, Write, Permission Management, Tagging)의 작업이 정책에 Full 또는 Limited 권한으로 정의되어 있는지 알려줘요. 액세스 수준 요약에 대한 추가 세부 내용·예시는 정책 요약의 액세스 수준을 참고하세요.
- Full access — 서비스가 사용 가능한 네 가지 액세스 수준 전체의 모든 작업에 액세스할 수 있음을 나타내요.
- 항목에 Full access 가 없으면 서비스가 일부(전부는 아닌) 작업에 액세스할 수 있음을 의미해요. 액세스는 각 액세스 수준 분류(List, Read, Write, Permission Management, Tagging)에 대한 다음 설명으로 정의돼요.
- Full : 정책이 나열된 각 액세스 수준 분류의 모든 작업에 액세스를 제공해요. 예시에서 정책은 모든 Billing Read 작업에 액세스를 제공해요.
- Limited : 정책이 나열된 각 액세스 수준 분류의 일부(전부는 아닌) 작업에 액세스를 제공해요. 예시에서 정책은 일부 Billing Write 작업에 액세스를 제공해요.
- Resource — 이 열은 정책이 각 서비스에 대해 지정하는 리소스를 보여줘요.
- Multiple — 정책이 서비스 안의 여러(전부는 아닌) 리소스를 포함해요. 예시에서 Amazon S3 리소스 여러 개에 대한 액세스가 명시적으로 거부돼요.
- All resources — 정책이 서비스 안의 모든 리소스에 대해 정의돼 있어요. 예시에서 정책은 나열된 작업이 모든 Billing 리소스에서 수행되도록 허용해요.
- Resource text — 정책이 서비스 안의 리소스 하나를 포함해요. 예시에서 나열된 작업은
DeploymentGroupNameCodeDeploy 리소스에서만 허용돼요. 서비스가 IAM에 제공하는 정보에 따라 ARN이나 정의된 리소스 유형이 보일 수 있어요.- 참고 — 이 열은 다른 서비스의 리소스를 포함할 수 있어요. 리소스를 포함하는 정책 구문이 같은 서비스의 작업과 리소스를 모두 포함하지 않으면 정책에 불일치(mismatched) 리소스가 포함된 것이에요. IAM은 정책 생성 시나 정책 요약에서 정책을 볼 때 불일치 리소스에 대해 경고하지 않아요. 이 열에 불일치 리소스가 포함되면 오류를 위해 정책을 검토해야 해요. 정책을 더 잘 이해하려면 항상 정책 시뮬레이터로 테스트하세요.
- Request condition — 이 열은 리소스와 연결된 서비스·작업이 조건의 적용을 받는지 나타내요.
- None — 정책이 서비스에 대한 조건을 포함하지 않아요. 예시에서 Amazon S3 서비스의 거부된 작업에 조건이 적용되지 않아요.
- Condition text — 정책이 서비스에 대한 조건 하나를 포함해요. 예시에서 나열된 Billing 작업은 소스 IP 주소가
203.0.113.0/24와 일치할 때만 허용돼요. - Multiple — 정책이 서비스에 대한 조건을 여러 개 포함해요. 정책의 여러 조건 각각을 보려면 JSON 을 선택해 정책 문서를 봅니다.
- Show remaining services — 이 버튼을 토글해 정책이 정의하지 않은 서비스를 포함하도록 테이블을 확장해요. 이 서비스들은 이 정책 안에서 암묵적으로 거부(implicitly denied)돼요. 단 다른 정책의 구문이 여전히 서비스 사용을 허용하거나 명시적으로 거부할 수 있어요. 정책 요약은 단일 정책의 권한을 요약해요. AWS 서비스가 주어진 요청을 허용·거부할지 결정하는 방법은 정책 평가 로직을 참고하세요.
정책이나 정책 안의 요소가 권한을 부여하지 않으면 IAM은 정책 요약에 추가 경고·정보를 제공해요. 다음 정책 요약 테이블은 SummaryAllElements 정책 세부 정보 페이지에서 Show remaining services 를 확장한 모습이에요.
이미지에서 정의된 작업, 리소스, 조건이 있지만 권한이 없는 모든 서비스를 볼 수 있어요.
- 리소스 경고 (Resource warnings) — 포함된 작업·리소스 전체에 권한을 제공하지 않는 서비스에 대해 테이블의 Resource 열에 다음 경고 중 하나가 보여요.
- No resources are defined. — 서비스에 정의된 작업은 있지만 지원되는 리소스가 정책에 포함되지 않았음을 의미해요.
- One or more actions do not have an applicable resource. — 서비스에 정의된 작업은 있지만 그중 일부가 지원되는 리소스를 갖지 않았음을 의미해요.
- One or more resources do not have an applicable action. — 서비스에 정의된 리소스는 있지만 그중 일부를 지원하는 작업이 없음을 의미해요.
- 서비스가 적용 가능한 리소스가 없는 작업과 적용 가능한 리소스가 있는 리소스를 모두 포함하면 One or more resources do not have an applicable action. 경고만 표시돼요. 서비스의 서비스 요약을 볼 때 어떤 작업에도 적용되지 않는 리소스는 표시되지 않기 때문이에요.
ListAllMyBuckets작업의 경우 이 정책은 마지막 경고를 포함하는데, 그 작업이 리소스 수준 권한을 지원하지 않고s3:x-amz-acl조건 키도 지원하지 않기 때문이에요. 리소스 문제나 조건 문제 중 하나를 고치면 남은 문제가 상세 경고로 나타나요.
- 요청 조건 경고 (Request condition warnings) — 포함된 조건 전체에 권한을 제공하지 않는 서비스에 대해 테이블의 Request condition 열에 다음 경고 중 하나가 보여요.
- One or more actions do not have an applicable condition. — 서비스에 정의된 작업은 있지만 그중 일부가 지원되는 조건을 갖지 않았음을 의미해요.
- One or more conditions do not have an applicable action. — 서비스에 정의된 조건은 있지만 그중 일부를 지원하는 작업이 없음을 의미해요.
- Multiple | One or more actions do not have an applicable resource. — Amazon S3에 대한 Deny 구문이 여러 리소스를 포함해요. 작업도 여러 개 포함하며 일부 작업은 리소스를 지원하고 일부는 지원하지 않아요. 이 경우 정책은 모든 Amazon S3 작업을 포함하고, 버킷이나 버킷 객체에서 수행할 수 있는 작업만 거부돼요.
- No resources are defined — 서비스에 정의된 작업은 있지만 지원되는 리소스가 정책에 포함되지 않아 서비스가 권한을 제공하지 않아요. 이 경우 정책은 CodeCommit 작업은 포함하지만 CodeCommit 리소스는 포함하지 않아요.
- DeploymentGroupName | string like | All, region | string like | us-west-2 | One or more actions do not have an applicable resource. — 서비스에 정의된 작업이 있고, 지원 리소스가 없는 작업이 하나 이상 더 있어요.
- None | One or more conditions do not have an applicable action. — 서비스에 지원 작업이 없는 조건 키가 하나 이상 있어요.
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:::amzn-s3-demo-bucket",
"arn:aws:s3:::amzn-s3-demo-bucket/*",
"arn:aws:autoscling:us-east-2:123456789012:autoscalgrp"
],
"Condition": {
"StringEquals": {
"s3:x-amz-acl": [
"public-read"
],
"s3:prefix": [
"custom",
"other"
]
}
}
}
]
}