백오피스 제품에서 s3 버킷을 이미지 저장소를 사용하려 하며 계약서류, 사업자등록증과 같은 민감한 이미지가 저장될거라 s3 버킷 정책에 보안 정책을 추가하였습니다.

아래의 조건에서만 버킷 접근이 가능합니다.

  • 회사 vpn 에서만 접근 가능해야 한다
  • 특정 사용자만 접근 가능합니다.
  • 버킷의 특정 디렉토리만 제공합니다.

코드로 작성하면 다음과 같습니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DenyPublicReadFromOutsideOfVPC",
            "Effect": "Deny",
            "NotPrincipal": {
                "AWS": [
                    "arn:aws:iam::852575311:user/user_name",
                ]
            },
            "Action": "s3:GetObject",
            "Resource": [
                "arn:aws:s3:::bucket/images/*/*",
            ],
            "Condition": {
                "NotIpAddress": {
                    "aws:SourceIp": "58.123.3.123"
                },
                "StringNotEquals": {
                    "aws:SourceVpce": "vpce-02f02f02f02f"
                }
            }
        }
    ]
}