[GCP] OS Login 이용한 외부 gmail 계정 사용

Seunghyun Moon·2023년 5월 3일
0

gcp

목록 보기
10/15

org에 속하지 않은 gmail 계정에 충분한 권한을 줬는데 ssh 접속이 불가능했다.
이유와 해결방법을 알아본다.


IAM과 OS login

IAM admin 계정을 사용해 roles/compute.osLoginExternalUser 를 할당해주려했으나 검색도 안되고 gcloud 로도 불가능 했다.(나중에 알고보니 이 역할은 조직레벨에서 할당 가능했다.)
https://cloud.google.com/compute/docs/oslogin/set-up-oslogin?hl=ko#configure_users

gcloud projects add-iam-policy-binding externaluser --member='user:YOUR_USER@gmail.com' --role='roles/compute.osLoginExternalUser' --project prj-cc-production-cicd-2142

IAM > roles 에서 해당 permission이 포함된 다른 role 을 찾았고,
compute admin 권한까지 줬는데도 동일한 에러가 발생했다.

OS login 을 사용하지 못 하는게 원인이라고 봤고,
vm의 metadata에서 enable.oslogin = false 로 주니 ssh 접속에성공했다.


os login을 조금 더 알아본다.

https://cloud.google.com/compute/docs/instances/access-overview?hl=ko
https://cloud.google.com/compute/docs/oslogin?hl=ko

OS 로그인을 사용하면 Linux 사용자 계정을 Google ID에 연결하여 SSH 액세스 관리를 간소화할 수 있습니다. 관리자는 IAM 권한을 설정하여 인스턴스 또는 프로젝트 수준에서 인스턴스에 대한 액세스를 쉽게 관리할 수 있습니다.

SSH 키를 사용한 log in은 비활성화 됩니다.


테스트

view, service account user, compute os admin login, iap tunnel user, compute.instances.setMetadata

조직 외부 계정(gmail)에 위 역할을 할당합니다.

VM 두대를 준비하고
메타데이터 - enable-oslogin의 값을 각각 true, false 로 설정합니다.

true 로 된 vm에는 위와 동일한 에러메세지가 나며 접근이 실패합니다.

조직 레벨의 권한인 roles/compute.osLoginExternalUser 에 있는 compute.oslogin.updateExternalUser 권한이 필요합니다.

프로젝트단위의 역할에서 해당 권한을 사용할 수 없기 때문에 조직 단위 역할을 할당합니다.

ext 접두사가 붙은 상태로 os 로그인에 성공합니다.

profile
I live fullest

0개의 댓글