본문 바로가기
AWS 관련

[Day 298] AWS S3 - Source IP 기반으로 접근권한 제한

by minimalist_2022 2021. 6. 3.

A. 특정 Source IP는 버킷 읽기 권한만 부여하는 방법

1. AWS S3> 버킷> 버킷 만들기> 기본설정으로 버킷 생성

2. 버킷 선택> 권한> 버킷 정책> 편집> 아래와 같이 입력 후 저장

※ 정책 생성은 https://awspolicygen.s3.amazonaws.com/policygen.html 활용

{
    "Version": "2012-10-17",
    "Id": "S3 Access Control",
    "Statement": [
        {
            "Sid": "S3ReadOnlyPolicy",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::버킷 이름/*",
                "arn:aws:s3:::버킷 이름"
            ],
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": [
                        "읽기 권한만 부여할 IP주소",
                        "읽기 권한만 부여할 IP주소"
                    ]
                }
            }
        }
    ]
}

B. 특정 Source IP에게는 해당 버킷과 관련된 모든 권한을 부여하고, 나머지 Source IP는 모두 접근 차단하는 방법

1. AWS S3> 버킷> 버킷 만들기> 기본설정으로 버킷 생성

2. 버킷 선택> 권한> 버킷 정책> 편집> 아래와 같이 입력 후 저장(Source IP는 공인 IP만 설정 가능)

{
  "Id": "Policy1622710117004",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1622710075101",
      "Action": "s3:*",      
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::버킷 이름",
        "arn:aws:s3:::버킷 이름/*"
      ],
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": "지정한 IP주소"
        }
      },
      "Principal": "*"
    },
    {
      "Sid": "Stmt1622710115589",
      "Action": "s3:*",     
      "Effect": "Deny",
      "Resource": [
        "arn:aws:s3:::버킷 이름",
        "arn:aws:s3:::버킷 이름/*"
      ],
      "Condition": {
        "NotIpAddress": {
          "aws:SourceIp": "지정한 IP주소"
        }
      },
      "Principal": "*"
    }
  ]
}

 

* 참고 : https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/reference_policies_examples_s3_deny-except-bucket.html

 

Amazon S3: 특정 S3 버킷으로 관리를 제한 - AWS Identity and Access Management

NotAction 및 NotResource는 신중히 사용해야 하는 고급 정책 요소입니다. 이 정책에서는 Amazon S3를 제외한 모든 AWS 서비스에 대한 액세스를 거부합니다. 이 정책을 사용자에게 연결할 경우 다른 서비

docs.aws.amazon.com