[권고] 담당자별 S3 디렉터리 할당 및 중요 정보 저장

ZER0·2022년 9월 24일
0

AWS 보안 설정 가이드

목록 보기
29/47
post-custom-banner

1. 개요

  • 담당자별로 접근 가능한 S3 저장 공간을 할당하고, Access Key 등 중요 정보를 이곳에 저장ㆍ관리 필요

2. 취약점 판단 기준

  • Access Key 등 중요 정보를 S3가 아닌 개인 PC에 저장해 관리하는 경우 취약
  • Access Key 등 중요 정보를 담당자별 S3에 저장하여 관리하는 경우 취약하지 않음

3. 취약점 확인 방법

  • 관리 콘솔에서 [S3] 검색 → [버킷] 메뉴 클릭
  • 버킷 목록에서 담당자별 디렉터리 생성 여부 확인

4. 취약점 조치 방법

  • [상황] Kim 과 Hong 두 개의 IAM 계정이 존재하는 상황에서 각각 S3 디렉터리를 할당하고자 하는 상황
  • 관리 콘솔에서 [S3] 검색 → [버킷] 메뉴 → [버킷 만들기] 클릭
  • 버킷 생성
  • 생성한 버킷으로 이동 → [폴더 만들기] 클릭
  • 폴더 생성
  • IAM 계정별 디렉터리 생성
  • 관리 콘솔에서 [IAM] 검색 → [정책] 메뉴 → [정책 생성] 클릭
  • JSON(1)을 활용하여 다른 IAM 계정에서 자신의 S3 디렉터리로 접근을 방지하는 정책 생성
    • JSON(1)
      # **[bucket_name]**과 **[directory_name]**을 할당할 경로에 맞게 수정 필요
      # 예시) bucket_name : tmp-indi-dics / directory_name : users
      
      {
          "Version": "2012-10-17",
          "Statement": [
              {
                  "Sid": "AllowUserToSeeBucketListInTheConsole",
                  "Action": [
                      "s3:ListAllMyBuckets",
                      "s3:GetBucketLocation"
                  ],
                  "Effect": "Allow",
                  "Resource": [
                      "arn:aws:s3:::*"
                  ]
              },
              {
                  "Sid": "AllowRootAndHomeListingOfCompanyBucket",
                  "Action": [
                      "s3:ListBucket"
                  ],
                  "Effect": "Allow",
                  "Resource": [
                      "arn:aws:s3:::**[bucket_name]**"
                  ],
                  "Condition": {
                      "StringEquals": {
                          "s3:prefix": [
                              "",
                              "**[directory_name]**/"
                          ],
                          "s3:delimiter": [
                              "/"
                          ]
                      }
                  }
              },
              {
                  "Sid": "AllowListingOfUserFolder",
                  "Action": [
                      "s3:ListBucket"
                  ],
                  "Effect": "Allow",
                  "Resource": [
                      "arn:aws:s3:::**[bucket_name]**"
                  ],
                  "Condition": {
                      "StringLike": {
                          "s3:prefix": [
                              "**[directory_name]**/${aws:username}/*"
                          ]
                      }
                  }
              },
              {
                  "Sid": "AllowAllS3ActionsInUserFolder",
                  "Effect": "Allow",
                  "Action": [
                      "s3:*"
                  ],
                  "Resource": [
                      "arn:aws:s3:::**[bucket_name]**/**[directory_name]**/${aws:username}/*"
                  ]
              }
          ]
      }
  • JSON(1)을 활용해 생성한 정책을 IAM 계정에 연결
  • IAM 계정으로 관리 콘솔 로그인 후 본인 소유의 디렉터리에만 접근 가능함을 확인


5. 참고

profile
Security Compliance Engineer
post-custom-banner

0개의 댓글