본문 바로가기
Amazon Web Services

특정 S3 Bucket에 권한 부여 (JSON Policy)

1103동103호·2017년 12월 28일·조회 4,220

1. 개요

특정 Amazon S3 버킷에 대한 접근 권한을 부여하는 IAM 정책 예시이다. 아래 예시에서 [버킷명]은 실제 버킷 이름으로 변경해서 사용한다.

S3 권한은 버킷 자체에 적용되는 권한과 버킷 안의 객체에 적용되는 권한이 구분된다. 그래서 일반적으로 arn:aws:s3:::[버킷명]arn:aws:s3:::[버킷명]/*를 함께 지정한다.


2. 내용

2-1. 모든 권한

해당 버킷과 버킷 내 객체에 대해 S3의 모든 작업을 허용하는 정책이다. 운영 환경에서는 필요한 작업만 최소한으로 허용하는 것이 권장된다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1507866767000",
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::[버킷명]",
                "arn:aws:s3:::[버킷명]/*"
            ]
        }
    ]
}

2-2. Read/Write 권한

객체 조회, 객체 업로드와 S3의 List 계열 작업을 함께 허용하는 예시이다. s3:GetObjects3:PutObject는 객체 리소스에 적용되는 대표적인 작업이며, s3:List*는 여러 List 계열 액션을 포함하므로 실제 필요한 목록 조회 작업에 맞춰 액션과 리소스를 구체화하는 것이 좋다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1507866767000",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:List*",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::[버킷명]",
                "arn:aws:s3:::[버킷명]/*"
            ]
        }
    ]
}

3. 적용 전 확인 사항

  • IAM 사용자, 그룹, 역할 중 어디에 정책을 연결할지 먼저 결정한다.
  • 버킷 이름을 잘못 입력하면 권한이 적용되지 않으므로 ARN의 [버킷명]을 실제 이름으로 정확히 바꾼다.
  • 읽기만 필요하다면 s3:PutObject를 제외하는 등 최소 권한 원칙에 맞게 조정한다.
  • 정책 적용 후 AWS Management Console, AWS CLI, 애플리케이션 등 실제 사용 경로에서 목록 조회, 다운로드, 업로드가 정상 동작하는지 확인한다.

관련 글

댓글 0

로그인 후 댓글을 남길 수 있습니다.

아직 댓글이 없습니다.