👉 AWS S3 접속👉 S3 서비스로 접속👉 버킷 만들기 클릭👉 버킷 만들기 페이지🔹 일반 구성🔹 객체 소유권🔹 이 버킷의 퍼블릭 액세스 차단 설정🔹 버킷 버전 관리🔹 기본 암호화👉 IAM 설정🔹 사용자 페이지🔹 사용자 세부 정보 지정페이지🔹 권한 설정 페이지🔹 검토 및 생성 페이지👉 엑세스 키 만들기🔹액세스 키 모범 사례 및 대안🔹 설명 태그 설정 🔹 액세스 키 검색 페이지👉 다시 S3로 접속🔹 버킷 정보 페이지🔹 버킷 권한 페이지🔹 버킷정책 편집🔹 내 컴퓨터 외부IP 알아내는 방법
👉 AWS S3 접속
👉 S3 서비스로 접속
👉 버킷 만들기 클릭
👉 버킷 만들기 페이지
🔹 일반 구성
이름을 지정한다.
🔹 객체 소유권
비활성화됨 클릭
🔹 이 버킷의 퍼블릭 액세스 차단 설정
이 s3 스토리지는 어느곳에서 접근이 가능하면
디지털 보안이랑 디지털 권리가 아주 침해될 수 있으므로,
s3서버에서는 인코딩 서버와 / 라이센스 서버만 CORS 설정으로 열어 놓아야 한다.
그래서 모든 퍼블릭 엑세스 차단으로 설정
🔹 버킷 버전 관리
스토리지를 깃처럼 여러버전으로 관리할 수 있게 했어,
활성화를 하면 문제가 생겼을때 복원이 쉽고, 변경 기록을 찾기 쉽다.
하지만 같은 객체를 여러번 저장하게 될 가능성이 높기 떄문에, 용량은 더 많이 차지한다.
비용이 증가한다는 말이지..
서비스 할 때는 고려해봐야 겠지만, 테스트 환경에서는 비활성화를 하자
🔹 기본 암호화
일단 SSE-S3가 비용이 가장낮고, 키를 우리가 관리할 필요가 없어서 테스트 서버에서는
추천되지만, 진짜 서비스 할때는 제어권한이 낮아서 불편할 수 있다.
우린 테스트 환경이니까 SSE-S3를 선택해서 사용하자.
이렇게 생성이 되었다.
👉 IAM 설정
IAM 대시보드로 이동해서
사용자를 클릭
🔹 사용자 페이지
사용자 생성 클릭
🔹 사용자 세부 정보 지정페이지
🔹 권한 설정 페이지
직접 정책 연결 선택
S3 검색해서
FullAccess 선택 누르고 다음페이지🔹 검토 및 생성 페이지
사용자 생성을 하면 s3의 모든 권한을 가진 사용자가 생성이 된다.
👉 엑세스 키 만들기
IAM >> 사용자
로 접속
엑세스 키 만들기 선택
🔹액세스 키 모범 사례 및 대안
CLI 선택 후 다음 페이지
🔹 설명 태그 설정
키 만들기 선택
🔹 액세스 키 검색 페이지
csv로 다운로드 후 완료를 클릭!
여기 키가 프로젝트에 사용이 될것
👉 다시 S3로 접속
🔹 버킷 정보 페이지
아까 생성할 때
퍼블릭 액세스 차단
으로 설정 했기 때문에, 권한이 있는 나만 접속이 가능하지 아무도 못들어온다.
그래서 내가 열어주고 싶은곳만 열어주는 작업을 해야하는데,
우린 웹애플리케이션서버 / 인코딩서버 에서 접근 가능할 수 있도록 만들어줘야된다. 권한을 클릭하자.
🔹 버킷 권한 페이지
권한 페이지에서
버킷 정책을 JSON 데이터 형태로 설정할 수 있다.
편집을 클릭
🔹 버킷정책 편집
여기서 권한들을 추가할 수 있는데, 선택하면 자동으로 JSON 형태로 생긴다.
여기서 내가 하고 싶은 것은 웹앱서버IP 랑 인코딩 서버 IP를 추가서 허용해야되는 것인데,
localhost같은거는 안된다.
당연하지 서버는 내 상태를 저장하지 않는데, 내가 요청을 해도 그냥 제 3자가 요청하는 것으로 인식하게 될것.
그렇다면 현재로서 할 수 있는 일은,
내 컴퓨터의 외부IP를 등록해야 하고,
만약 프로젝트가 배포가 되어있다면,
그 프로젝트가 포함된 보안 그룹이나 로드밸런서의 IP를 등록해야될 것이다.
만약 그 IP가 변경이 되는 거라면, 매번 다른환경의 IP를 등록해야될 수도 있다.
JavaScript
// 정책 예시
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowAccessFromSpecificIP",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:*"
],
"Resource": "arn:aws:s3:::stephen-busan-bucket/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": "내 외부 IP 여기에"
}
}
}
]
}위에 JSON으로 된 정책 데이터의 의미는
내 컴퓨터 내부에서 서버를 돌려서 요청을 하게 되었을 때 모든 S3요청을 허용하겠다는 뜻이다.
내 외부IP를
aws:SrouceIP 에 등록하면 되는데,
내가 노트북으로 하면 WIFI에 따라 외부IP가 변경이 되니, 매번 등록해줘야 할 수도 있다.
그렇다면 나의 사설 IP가 아닌 외부 IP를 알아내야 한다. 