728x90
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
'퍼블릭 클라우드' 카테고리의 다른 글
Amazon EC2 파일 시스템 확장(디스크 볼륨 증설) (0) | 2021.12.08 |
---|---|
Amazon Linux 2에서 goofys 설치 및 S3 마운트하기 (0) | 2021.11.08 |
Amazon Linux 2에서 rc-local(rc.local) 서비스를 활성화하는 방법 (0) | 2021.10.30 |
[aws] EC2 접속 시 슬랙으로 알림 보내기 (0) | 2021.10.30 |
[draft] Amazon EC2 인스턴스에 정적 호스트 이름을 할당하는 방법 (0) | 2021.10.30 |