GCP
Cloud IAM은 구글 클라우드 리소스에 접근할 수 있는 엑세스와 ID 권한을 부여해주는 서비스로 누가 어떤 리소스에 액세스할 수 있을지는 제어합니다.
이를 이용하면 다른 이들이 리소스에 접근하는 것을 방지하고 어떤 리소스에 액세스하고 만들지 결정할 수 있습니다. 또한 IAM은 최소 권한의 보안 원칙을 적용하여 특정 리소스에 액세스 하는 데 필요한 권한만 부여할 수 있게 해 줍니다.
또한 Cloud IAM 정책은 어떤 역할이 어떤 구성원에게 부여되는지를 정의하고, 이 정책은 리소스에 연결됩니다. 이 구성원이 리소스에 액세스하려면 IAM 측에서 정책을 확인하고 허용 여부를 결정하는 것입니다. 만약 권한이 없다면 인증 정보가 없다는 메시지가 뜹니다. 또한 ID 별로 역할을 줄 수 있어, 리소스 별로 접근에 대한 개별 설정이 가능합니다.
Cloud IAM에서 사용하는 ID는 4개 입니다.
구글 계정 : 개별 사용자 계정, 지메일 및 기타 도메인 사용 가능
서비스 계정 : 애플리케이션 계정, 코드를 실행하는 계정 지정
구글 그룹 : 여러 구글 계정과 서비스 계정을 모은 통합 계정, 전체 그룹에 동시에 엑세스 제어 부여 가능
G Suite : 지 수트 계정으로 만들어진 모든 구글 계정으로 구성된 가상 그룹
이쯤되면 IAM 정책(IAM Policy)과 리소스의 구성에 대해 궁금하실 겁니다.
먼저 IAM 정책(IAM Policy)이란 하나 이상의 구성원을 역할에 바인딩한 것을 뜻합니다. 즉 엑세스 권한을 가지고 있는 역할들의 멤버 리스트를 뜻하며 이를 통해 사용자가 엑세스에 접근할 경우 이 정책을 기준으로 허용여부를 결정합니다.
따라서 정책은 구성원(Members)과 역할(Roles)로 구성됩니다.
여기서 구성원은 구글 계정, 구글 그룹, 서비스 계정 등이고 역할은 Compute Engine 인스턴스 관리자, 객체 뷰어 등입니다.
그럼 이제 GCP 리소스의 계층구조에 대해 알아봅시다.
GCP 리소스는 계층 구조로 구성되어 있는데, 순서는 조직((Organization) – 폴더(Folders) – 프로젝트(Project) – 리소스(Resources) 순으로 구성됩니다.
조직 리소스는 이 계층 구조의 루트 노드입니다. 자신의 조직에 속한 모든 리소스를 관리할 수 있는 액세스 권한을 제공하므로 감사에 유용합니다. 따라서 이 조직 리소스는 IAM 정책을 정의하고 리소스 계층 구조를 결정합니다.
폴더는 프로젝트 간에 추가 그룹화 메커니즘과 격리 경계를 제공합니다. 폴더를 사용하면 관리 권한을 위임할 수 있습니다. 예를 들어 부서의 각 책임자는 해당 부서에 속한 모든 GCP 리소스에 대한 전체 소유권을 부여받을 수 있습니다. 마찬가지로 리소스에 대한 액세스는 폴더별로 제한될 수 있으므로 한 부서의 사용자는 해당 폴더 내의 GCP 리소스에만 액세스하고 만들 수 있습니다.
이처럼 계층 구조이기 때문에 하부의 리소스들을 상부의 영향을 받습니다. 즉 조직 리소스의 IAM 역할이 이하 모든 리소스에 그대로 상속된다는 뜻입니다. 이는 최하 리소스까지 이어집니다.
따라서 만약 노출이 걱정되신다면 항상 최하에 있는 리소스를 선택하셔야 합니다. 하위에 있는 리소스는 상위 리소스에 액세스할 권한이 없기 때문입니다.
이제 IAM roles에 대해 알아볼까요. 이 역할은 세가지로 나눠집니다.
기본 역할
사전 정의된 역할
커스텀 역할
기본 역할은 그 안에서도 소유자, 편집자, 뷰어로 나눠지는데요.
소유자는 편집자가 할 수 있는 모든 권한이 이용 가능하며 그에 더해 프로젝트를 삭제하고 멤버를 초대, 삭제할 수 있는 편집 권한이 있습니다.
편집자는 말 그대로 애플리케이션을 만들고 서비스를 설정하며 리소스를 수정하거나 코드를 변경할 수 있는 권한이 있습니다.
뷰어는 읽기 전용입니다.
사전 정의된 역할은 구성원에게 기본보다 더 세분화된 액세스 권한을 제공하며 구글에서 만들고 유지 및 관리 합니다.
커스텀 역할은 더 나아가 사전 정의된 역할보다 더 자세하고 세분화된 엑세스 권한이 필요할 때 사용 됩니다. 사용자가 직접 역할과 권한을 커스텀할 수 있으며 이를 합칠 수도 있습니다. 따라서 높은 권한이 요구되기 때문에 조직이나 프로젝트 단계에서는 설정이 가능하지만 폴더나 리소스에서는 커스텀 역할을 만들 수 었습니다.
IAM을 사용하면 중요한 데이터를 손쉽게 보호할 수 있다는 장점이 있습니다. 엑세스 권한에 부여유무를 통해 정보가 빠져나가지 않도록 방어하는 것 역시 가능합니다.
또한 프로젝트를 빠르게 진행하고, 프로세스 및 절차를 준수하는데 도움이 됩니다. 직원에게 부여하는 역할이 끝나면 그 권한을 금방 종식시킬 수 있고 작업을 위해 권한이 필요하게 된다면 마찬가지로 역할을 쉽게 부여할 수 있기 때문입니다.
하이프마크에서는 기업의 웹앱로그데이터의 클라우드 적재와 ETL 파이프라인 구성 그 외 클라우드 내 데이터분석 환경 구축 및 분석 시각화 서비스를 함께 제공하고 있습니다.
AWS, GCP등 클라우드 이전 매니지드서비스 및 웹앱로그데이터 태깅 적재 관련 문의사항이 있으시면 하이프마크에 문의 주세요
감사합니다.