반응형
AWS S3 버킷의 액세스를 IP 주소로 제한하는 방법
AWS S3 버킷의 액세스를 IP 주소로 특정 IP 주소만 S3 버킷에 접근할 수 있으며, 다른 IP 주소로부터의 액세스는 차단됩니다.
참고: 이 방법은 AWS 계정의 액세스 제어를 설정하므로 꼭 필요한 경우에만 사용해야 하며, 신중하게 구성해야 합니다.
AWS Management Console을 통한 방법
1. AWS Management Console에 로그인합니다.
2. S3 콘솔로 이동합니다.
3. 액세스를 제한하려는 버킷을 선택합니다.
4. "속성" 탭을 선택합니다.
5. "Bucket Policy" 옵션을 선택합니다.
6. 다음과 같은 형식의 정책을 추가합니다. 여기서 111.111.111.111은 허용하려는 IP 주소입니다.
- 버킷 정책
- IP 주소와 버킷 이름(bucketname)을 자신의 것으로 교체하여 다음 정책을 입력합니다.
{
"Version": "2012-10-17",
"Id": "S3PolicyId1",
"Statement": [
{
"Sid": "IPAllow",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:*"
],
"Resource": "arn:aws:s3:::bucketname/*",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": "1.1.1.1/32"
},
"IpAddress": {
"aws:SourceIp": [
"192.168.1.1",
"192.168.1.2/32",
"192.168.2.0/24"
]
}
}
}
]
}
728x90
AWS CLI(Command Line Interface)을 통한 방법
1. AWS CLI를 설치하고 구성합니다.
2. 다음 명령을 사용하여 버킷에 액세스 정책을 추가합니다.
aws s3api put-bucket-policy --bucket your-bucket-name --policy '{
"Version": "2012-10-17",
"Id": "IPAccessPolicy",
"Statement": [
{
"Sid": "IPAllow",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::your-bucket-name/*",
"arn:aws:s3:::your-bucket-name"
],
"Condition": {
"NotIpAddress": {
"aws:SourceIp": "111.111.111.111"
}
}
}
]
}'
여기서 your-bucket-name은 해당 S3 버킷의 이름이며, 111.111.111.111은 허용하려는 IP 주소입니다.
파일 업로드 테스트
[성공]
$ curl -X PUT -T test.txt -H 'Host: bucketname.s3.amazonaws.com' \
-H 'Content-Type: application/octet-stream' \
https://bucketname.s3.ap-northeast-2.amazonaws.com/test.txt
[실패-Access Denied]
$ curl -X PUT -T test.txt -H 'Host: bucketname.s3.amazonaws.com' \
-H 'Content-Type: application/octet-stream' \
https://bucketname.s3.ap-northeast-2.amazonaws.com/test.txt
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>498CJNSET2MMD3SQ</RequestId><HostId>8svxsbydrQ88ZtCUBM2Ra45DRLm9OObSrjsJtTcCsAUq3/fg78Ia5TGDd73rZZuUvQiNbNXoIXE=</HostId></Error>
참고URL
- https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/example-bucket-policies.html
728x90
반응형
'퍼블릭 클라우드' 카테고리의 다른 글
AWS CLI로 액세스 키(Access Key, Secret Access Key) 설정 (0) | 2021.10.05 |
---|---|
CentOS 7에서 Google OTP를 설치하고 설정하는 방법 (0) | 2021.10.05 |
AWS EC2 Instance Connect를 설정하는 방법 (0) | 2021.09.23 |
AWS CloudTrail을 설정하는 방법 (0) | 2021.09.17 |
Amazon SES를 사용하여 이메일 전송 테스트를 수행하는 방법 (0) | 2021.09.15 |