안녕하세요,

베스핀글로벌 GCP Support팀입니다.


이번 아티클에서는 주제로 "IAM"에 대해 다루고자 합니다.



IAM이란 무엇인가?


IAM은 Identity and Access Management의 약자로, 

IAM을 사용하면 특정 Google Cloud 리소스에 대한 세부적인 액세스 권한을 부여하고 다른 리소스에 대한 액세스를 방지할 수 있습니다. 

누구(ID)에게 무슨 리소스에 대한 어떤 액세스 권한(Role)이 있는지 정의하여 액세스 제어를 관리할 수 있으며, 여기서 의미하는 리소스란, GCE, GKE, GCS 등 뿐만 아니라 리소스를 구성하는 데 사용하는 조직, 폴더, 프로젝트까지 의미합니다.

IAM에서 리소스 액세스 권한은 최종 사용자에게 직접 부여되지 않습니다. 대신 권한이 Role로 그룹화되고 역할은 인증된 구성원에게 부여됩니다.

IAM을 처음 사용하는 경우, IAM 역할 부여 방법 참고 바랍니다.



최소 권한의 원칙


사용자에게 IAM 권한 부여 시 중요한 것은 최소 권한의 보안 원칙을 지키는 것입니다.

최소 권한의 원칙이란 사용자에게 접근이 필요한 특정 리소스에 필요한 만큼만의 권한만 부여하는 것입니다.

만약 Basic Role 혹은 Pre-defined Role 같이 GCP에서 제공하는 역할이 원칙을 지키기에 부적합하다면 Custom Role을 생성하여 더 세부적인 권한 부여를 할 수 있습니다.

또한 특정 리소스에만 접근할 수 있도록 IAM Condition을 설정하는 것도 최소 권한의 원칙을 지키는 좋은 방법입니다.

예를 들어 "User-1"이라는 사용자에게 "A" Cloud Storage 버킷에 접근할 수 있는 권한을 부여하고자 합니다.

이때, "User-1"에게 "A" 버킷에 얼마만큼 접근할 수 있는지를 허용함에 따라 다르게 권한을 부여해야합니다.

"User-1"이 "A"버킷의 오브젝트를 생성/삭제 할 수 있는 권한까지 허용한다면 "Storage Object User"를 부여할 수 있습니다.

"User-1"이 "A"버킷의 오브젝트를 get 할 수 있는 권한까지 허용한다면 "Storage Object Viewer"를 부여할 수 있습니다.

"User-1"이 "A"버킷의 오브젝트를 get 할 수 있지만 list를 확인할 수 없는 제한된 권한만을 허용한다면 "storage.objects.get" 권한을 가진 Custom Role을 부여할 수 있습니다.


계층구조


또한, Google Cloud 리소스는 계층적으로 구성됩니다. IAM 정책은 조직 수준, 폴더 수준, 프로젝트 수준, 리소스 수준 등 리소스 계층 구조의 모든 수준에서 설정할 수 있으며, 리소스는 모든 상위 리소스의 정책을 상속합니다. 


정책 상속은 하위 수준으로 전이됩니다. 즉, 리소스는 프로젝트에서 정책을 상속하고, 프로젝트는 폴더에서 정책을 상속하며, 폴더는 조직에서 정책을 상속합니다. 따라서 조직 수준 정책도 리소스 레벨에 적용됩니다.


참조링크


[1] Cloud IAM 개요

https://cloud.google.com/iam/docs/overview

[2] Cloud IAM - 역할 및 권한

https://cloud.google.com/iam/docs/roles-overview

[3] Cloud IAM - IAM Condition(조건설정)

https://cloud.google.com/iam/docs/conditions-overview

[4] 최소 권한의 원칙(Least privilege)

https://cloud.google.com/iam/docs/using-iam-securely#least_privilege



관련 문의사항이 있으시면 Support Portal에 문의해 주시기 바랍니다.


감사합니다.