정책 요약 예시
정책 요약 예시
다음 예시는 JSON 정책과 그에 연관된 정책 요약(policy summaries), 서비스 요약(service summaries), 작업 요약(action summaries) 을 포함해 정책을 통해 부여되는 권한을 이해하는 데 도움을 줘요.
출처: 문서
본문
정책 1: DenyCustomerBucket
이 정책은 같은 서비스에 대한 allow와 deny를 보여줘요.
{
"Version":"2012-10-17",
"Statement": [
{
"Sid": "FullAccess",
"Effect": "Allow",
"Action": ["s3:*"],
"Resource": ["*"]
},
{
"Sid": "DenyCustomerBucket",
"Action": ["s3:*"],
"Effect": "Deny",
"Resource": ["arn:aws:s3:::customer", "arn:aws:s3:::customer/*" ]
}
]
}
정책 요약은 DenyCustomerBucket Policy Summary 로 표시되며, S3 서비스가 (Explicit deny) 아래에 나타나고, GetObject (Read) 작업 요약이 이어지는 구조예요. 즉 같은 서비스에 대한 allow(Sid: FullAccess)와 명시적 거부(Sid: DenyCustomerBucket)를 모두 포함하는 예시예요.
정책 2: DynamoDbRowCognitoID
이 정책은 사용자의 Amazon Cognito ID에 기반해 Amazon DynamoDB에 행 수준 액세스(row-level access)를 제공해요.
{
"Version":"2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"dynamodb:DeleteItem",
"dynamodb:GetItem",
"dynamodb:PutItem",
"dynamodb:UpdateItem"
],
"Resource": [
"arn:aws:dynamodb:us-west-1:123456789012:table/myDynamoTable"
],
"Condition": {
"ForAllValues:StringEquals": {
"dynamodb:LeadingKeys": [
"${cognito-identity.amazonaws.com:sub}"
]
}
}
}
]
}
정책 요약은 DynamoDbRowCognitoID Policy Summary 로 표시되며, DynamoDB 서비스가 (Allow) 아래에 나타나고, GetItem (List) 작업 요약이 이어져요.
정책 3: MultipleResourceCondition
이 정책은 여러 리소스와 조건을 포함해요.
{
"Version":"2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:PutObjectAcl"
],
"Resource": ["arn:aws:s3:::Apple_bucket/*"],
"Condition": {"StringEquals": {"s3:x-amz-acl": ["public-read"]}}
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:PutObjectAcl"
],
"Resource": ["arn:aws:s3:::Orange_bucket/*"],
"Condition": {"StringEquals": {
"s3:x-amz-acl": ["custom"],
"s3:x-amz-grant-full-control": ["1234"]
}}
}
]
}
정책 요약은 MultipleResourceCondition Policy Summary 로 표시되며, S3 서비스가 (Allow) 아래에, PutObject (Write) 작업 요약이 이어져요.
정책 4: EC2_troubleshoot
다음 정책은 실행 중인 Amazon EC2 인스턴스의 스크린샷을 얻을 수 있게 해줘요. 이는 EC2 문제 해결에 도움이 돼요. 이 정책은 Amazon S3 developer 버킷의 항목 정보 보기도 허용해요.
{
"Version":"2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:GetConsoleScreenshot"
],
"Resource": [
"*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::developer"
]
}
]
}
정책 요약은 EC2_Troubleshoot Policy Summary 로 표시되며, S3 서비스가 (Allow) 아래에, ListBucket (List) 작업 요약이 이어져요.
정책 5: CodeBuild_CodeCommit_CodeDeploy
이 정책은 특정 CodeBuild, CodeCommit, CodeDeploy 리소스에 대한 액세스를 제공해요. 이 리소스들은 각 서비스에 특정하므로 일치하는 서비스와 함께만 나타나요. Action 요소의 어떤 서비스와도 일치하지 않는 리소스를 포함하면 그 리소스는 모든 작업 요약에 나타나요.
{
"Version":"2012-10-17",
"Statement": [
{
"Sid": "Stmt1487980617000",
"Effect": "Allow",
"Action": [
"codebuild:*",
"codecommit:*",
"codedeploy:*"
],
"Resource": [
"arn:aws:codebuild:us-east-2:123456789012:project/my-demo-project",
"arn:aws:codecommit:us-east-2:123456789012:MyDemoRepo",
"arn:aws:codedeploy:us-east-2:123456789012:application:WordPress_App",
"arn:aws:codedeploy:us-east-2:123456789012:instance/AssetTag*"
]
}
]
}
정책 요약은 CodeBuild_CodeCommit_CodeDeploy Policy Summary 로 표시되며, CodeBuild 서비스가 (Allow) 아래에, StartBuild (Write) 작업 요약이 이어져요.