-
스프링부트 GCS 연동 part1Java&Spring/Spring 2023. 1. 25. 14:59
서문:
스프링 부트와 gcs 연동에 관한 글이다.
관련 블로그를 찾아 따라할려고 했지만 , 서버를 로컬에서 돌리고 가상 인스턴스에 올리지 않는 가정에서 시작하여 차이가 있다.
1. gcs 가 발급을 하는 키중 하나인 json 파일을 보안상의 문제로 github 에 올릴 수가 없다.
2. 이전 프로젝트에서 aws s3 를 이용하여 구축을 했던 설정처럼 Iam 유저에서 secret key 와 access key 값을 뽑아 yml 파일에 입력하는 방식으로 진행을 하고자한다.
사전 준비 사항
1. GCP VM 인스턴스 외부 , 내부 ip 확인
----------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------
1. 구글 클라우드에 버킷을 만들자
GoogleCloud Console > 좌측 상단 메뉴 > Cloud Storage >버킷 클릭
좌측 상단 + 만들기 클릭
2.
- 이름 : 적당히 만든다 , 버킷의 이름은 고유하고 수정이 불가하니 잘 적자
- 데이터 저장 위치는 단일 지역으로 설정했다 : 앱에 들어가는 사진의 조회 및 수정 업로드 등 활발할것으로 예상을 한다.
3. 버킷 사용 목적의 맞는 스토리지 클래스를 해주자. 사용자 이미지 업로드 용이기 때문에 Standard 로 설정했다.
옵션 선택후 만들기 버튼을 누르면 잠시후 버킷이 생성이 된다.
----------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------
2. IAM
버킷에만 접속이 가능한 서비스 계정을 만들어 줄것이다.
모든 서비스를 관리하는 계정의 고유 정보가 노출이 돠면 보안상의 문제가 정말 크기 때문에 가능하면 역할을 세분화 하는것을 권장을 한다.
Cloud Storage 의 대한 IAM 역할의 정확한 설명은 공식 문서를 참고하자.
https://cloud.google.com/storage/docs/access-control/iam-roles
2-1. 메뉴 -> Iam 및 관리자 서비스 계정
2-2 만들기 클릭 후 이름 설정을 해주자
2-3 접근 가능한 역할을 설정하는 중요한 부분이다. 공식문서를 참고하여 필요한것을 추가해주자.
TIP ) 필터에 찾는게 어려워서 좌측에서 cloud storage 를 찾은후 역할을 추가했다.
추가한 역할
1. 스토리지 전송 에이전트
2.저장소 개체 관리자
3.저장소 관리자
4.저장소 전송 관리자
-> 생성후 자신의 프로젝트의 Iam 페이지에서 권한을 추가하거나 삭제 가능하다.
2-4 만든 서비스계정의 키를 추가해 주자.
만든 서비스계정 -> 키 -> 키추가 -> 새키 만들기 json
----------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------
3. 코드는 많으니 다음 블로그에서,,
'Java&Spring > Spring' 카테고리의 다른 글
em.persist 이후 get$ObjsectId() 가 가능 한가? (0) 2023.02.04 스프링부트 GCS 연동 part2 (0) 2023.01.26 Spring data-JPA,data-Rest (feat.프로젝트 구조) (0) 2022.10.31 @Qualifier (0) 2022.10.31 Spring data Jpa camelCase 자동 underscore 방지 Mysql (0) 2022.09.19