내용으로 건너뛰기

특정 VPC 엔드포인트 또는 IP 주소만 Amazon S3 버킷에 액세스하도록 하려면 어떻게 해야 합니까?

3분 분량
0

특정 Amazon Virtual Private Cloud(Amazon VPC) 엔드포인트 또는 IP 주소에서 Amazon Simple Storage Service(Amazon S3) 버킷으로의 트래픽만 허용하려고 합니다.

해결 방법

버킷 정책을 사용하여 S3 버킷에 액세스할 수 있는 VPC 엔드포인트, 프라이빗 IP 주소 또는 퍼블릭 IP 주소를 지정합니다.

경고: 다음 예시 버킷 정책에서는 허용된 VPC 엔드포인트 또는 IP 주소 외부의 특정 요청에 대한 액세스를 명시적으로 거부합니다. 버킷 정책을 평가하여 해당 정책이 콘솔 관련 요청에 영향을 미치는지 여부를 확인하십시오.

정책이 모든 S3 작업에 대한 액세스를 거부하면 버킷이 잠깁니다. 버킷 정책을 저장하기 전에 검토해야 합니다. 버킷이 잠긴 경우 실수로 모든 사람의 액세스를 거부한 후 Amazon S3 버킷에 다시 액세스하려면 어떻게 해야 합니까?를 참조하십시오.

특정 VPC 엔드포인트에 대한 액세스 제한

지정한 VPC 엔드포인트의 트래픽만 허용하려면 버킷 정책에서 aws:SourceVpce 키를 사용하십시오. 다음 예시 버킷 정책은 업로드 요청이 vpce-1111111 또는 vpce-2222222 VPC 엔드포인트에서 오는 경우를 제외하고 버킷에 대한 업로드 권한을 거부합니다.

{   
  "Id": "VPCe",  
  "Version": "2012-10-17",  
  "Statement": [  
    {  
      "Sid": "VPCe",  
      "Action": "s3:PutObject",  
      "Effect": "Deny",  
      "Resource": [  
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET",  
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"  
      ],  
      "Condition": {  
        "StringNotEquals": {  
          "aws:SourceVpce": [  
            "vpce-1111111",  
            "vpce-2222222"  
          ]  
        }  
      },  
      "Principal": "*"  
    }  
  ]  
}

참고: DOC-EXAMPLE-BUCKET을 해당 버킷 이름으로 바꾸십시오.

위의 정책을 aws:sourceVpce 조건과 함께 사용하려면 Amazon S3용 VPC 게이트웨이 엔드포인트를 만드십시오. 게이트웨이 엔드포인트를 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 서브넷의 라우팅 테이블에 연결합니다. 엔드포인트는 버킷과 동일한 AWS 리전에 있어야 합니다.

특정 프라이빗 IP 주소에 대한 액세스 제한

지정한 프라이빗 IP 주소의 트래픽만 허용하려면 버킷 정책에서 aws:VpcSourceIp 키를 사용하십시오. 다음 예시 버킷 정책은 업로드 요청이 10.1.1.1/32 또는 172.1.1.1/32 프라이빗 IP 주소에서 오는 경우를 제외하고 버킷에 대한 업로드 권한을 거부합니다.

{  
  "Id": "VpcSourceIp",  
  "Version": "2012-10-17",  
  "Statement": [  
    {  
      "Sid": "VpcSourceIp",  
      "Action": "s3:PutObject",  
      "Effect": "Deny",  
      "Resource": [  
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET",  
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"  
      ],  
      "Condition": {  
        "NotIpAddress": {  
          "aws:VpcSourceIp": [  
            "10.1.1.1/32",  
            "172.1.1.1/32"  
          ]  
        }  
      },  
      "Principal": "*"  
    }  
  ]  
}

참고: DOC-EXAMPLE-BUCKET을 해당 버킷 이름으로 바꾸십시오.

위의 정책을 aws:VpcSourceIP 조건과 함께 사용하려면 Amazon S3용 VPC 게이트웨이 엔드포인트를 만드십시오. 게이트웨이 엔드포인트를 EC2 인스턴스 서브넷의 라우팅 테이블에 연결합니다. 엔드포인트는 버킷과 동일한 리전에 있어야 합니다.

특정 퍼블릭 IP 주소 또는 IP 주소 범위에 대한 액세스 제한

지정한 퍼블릭 IP 주소 또는 IP 주소 범위의 트래픽만 허용하려면 버킷 정책에서 aws:SourceIp 키를 사용하십시오. 다음 예시 버킷 정책은 업로드 요청이 11.11.11.11/32 또는 22.22.22.22/32 퍼블릭 IP 주소에서 오는 경우를 제외하고 버킷에 대한 업로드 권한을 거부합니다.

{  
  "Id": "SourceIP",  
  "Version": "2012-10-17",  
  "Statement": [  
    {  
      "Sid": "SourceIP",  
      "Action": "s3:PutObject",  
      "Effect": "Deny",  
      "Resource": [  
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET",  
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"  
      ],  
      "Condition": {  
        "NotIpAddress": {  
          "aws:SourceIp": [  
            "11.11.11.11/32",  
            "22.22.22.22/32"  
          ]  
        }  
      },  
      "Principal": "*"  
    }  
  ]  
}

참고: DOC-EXAMPLE-BUCKET을 해당 버킷 이름으로 바꾸십시오.

다음 예시 버킷 정책은 업로드 요청이 192.168.0.0/24 또는 172.16.0.0/24 IP 주소에서 오는 경우를 제외하고 버킷에 대한 업로드 권한을 거부합니다.

{  
   "Id": "SourceIP",    
  "Version": "2012-10-17",    
  "Statement": [    
    {    
      "Sid": "SourceIP",    
      "Action": "s3:PutObject",    
      "Effect": "Deny",    
      "Resource": [    
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET",    
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"    
      ],    
      "Condition": {    
        "NotIpAddress": {    
          "aws:SourceIp": [    
            "192.168.0.0/24",    
            "172.16.0.0/24"    
          ]    
        }    
      },    
      "Principal": "*"    
    }    
  ]    
}

참고: DOC-EXAMPLE-BUCKET을 해당 버킷 이름으로 바꾸십시오.

다음 Condition 블록은 aws:PrincipalArn 키를 사용하여 동일한 AWS 계정의 특정 AWS Identity and Access Management(IAM) 엔터티가 버킷에 액세스할 수 있도록 합니다.

"Condition": {  
    "ArnNotLike": {  
        "aws:PrincipalArn": [  
            "arn:aws:iam::123456789012:role/role-name",  
            "arn:aws:iam::123456789012:user/user-name",  
            "arn:aws:iam::123456789012:root"  
        ]  
    }  
}

참고: 사용자가 VPC 엔드포인트 또는 IP 주소를 사용하여 버킷에서 S3 작업을 수행할 수 있도록 하려면 사용자 수준 권한을 명시적으로 허용하십시오. IAM 정책 또는 버킷 정책의 다른 명령문을 수정하면 사용자 수준 권한을 허용할 수 있습니다.

모든 S3 버킷에 대한 액세스 제한

계정의 모든 S3 버킷에 대한 액세스를 제한하려면 AWS Organizations를 통해 서비스 제어 정책(SCP)을 구성하십시오.