조직의 OS 로그인 관리

OS 로그인을 사용하여 인스턴스에 대한 액세스를 관리하는 경우 Cloud ID 계정의 조직 수준에서 구성을 설정할 수 있습니다. 예를 들어 OS Login API를 직접 사용하고 조직 내 모든 VM 인스턴스에 OS 로그인을 사용 설정하며 외부 사용자에게 액세스 권한을 부여할 수 있는 사용자를 제어할 수 있습니다.

이 주제에서는 다음 태스크를 설명합니다.

시작하기 전에

조직 정책을 사용하여 OS 로그인 사용 설정

조직에서 OS 로그인 제약조건을 설정하여 모든 신규 프로젝트와 새 프로젝트 내에서 생성된 VM 인스턴스에 OS 로그인을 사용 설정할 수 있습니다.

이 제약조건이 설정되면 다음 조건이 적용됩니다.

  • 모든 신규 프로젝트의 프로젝트 메타데이터에서 enable-oslogintrue로 설정됩니다.
  • 인스턴스 또는 프로젝트 메타데이터에서 enable-osloginfalse로 설정하는 업데이트 요청이 거부됩니다.

제한사항

  • 이 제약조건은 소급해서 적용할 수 없습니다. OS 로그인은 제약조건이 적용되기 전에 생성된 인스턴스와 프로젝트에 자동으로 사용 설정되지 않습니다.
  • Google Kubernetes Engine을 실행하는 인스턴스는 OS 로그인을 지원하지 않습니다. OS 로그인 제약조건을 사용 설정하면 제약조건이 적용되는 프로젝트에서 Google Kubernetes Engine 클러스터가 새 인스턴스를 만들지 못하도록 방지됩니다.

    이 문제를 해결하려면 조직 수준에서 이 제약조건을 사용 설정한 다음, Google Kubernetes Engine 클러스터가 있는 프로젝트에서 제약조건을 선택적으로 사용 중지할 수 있습니다. 또는 프로젝트 또는 폴더 수준에서 OS 로그인을 사용하도록 설정할 수 있습니다. 조직 정책 관리에 대한 자세한 내용은 조직 정책 만들기 및 관리를 참조하세요.

OS 로그인 정책을 사용 설정하려면 gcloud 명령줄 도구를 사용하여 특정 프로젝트 및 폴더에 OS 로그인 제약조건을 설정할 수 있습니다. 또한 Google Cloud Console 또는 gcloud 명령줄 도구를 사용하여 전체 조직에 OS 로그인 제약조건을 설정할 수도 있습니다.

Console

Console에서 OS 로그인 조직 정책을 설정하려면 다음 단계를 완료하세요.

  1. Google Cloud Console에서 조직 정책 페이지로 이동합니다.

    조직 정책 페이지로 이동

  2. 정책 목록에서 OS 로그인 필요를 클릭하여 OS 로그인 제약조건을 확인합니다.
  3. 수정을 클릭하여 기존 OS 로그인 제약조건을 수정합니다.
  4. 수정 페이지에서 맞춤설정을 선택합니다.
  5. 이 제약조건을 시행하려면 사용을 선택합니다.
  6. 저장을 클릭하여 제약조건 설정을 적용합니다.

gcloud

OS 로그인 조직 정책을 설정하려면 gcloud beta resource-manager org-policies enable-enforce 명령어를 사용합니다.

  1. 조직 ID를 찾습니다.

    gcloud organizations list
  2. 조직의 제약조건을 설정합니다. organization-id조직 ID로 바꿉니다.

    gcloud beta resource-manager org-policies enable-enforce compute.requireOsLogin \
        --organization=organization-id
    

--folder 또는 --project 플래그와 폴더 ID, 프로젝트 ID를 각각 사용하여 OS 로그인 조직 정책을 폴더 또는 프로젝트에 적용할 수도 있습니다.

폴더에 다음 명령어를 실행합니다.

gcloud beta resource-manager org-policies enable-enforce compute.requireOsLogin \
    --folder=folder-id

프로젝트에 다음 명령어를 실행합니다.

gcloud beta resource-manager org-policies enable-enforce compute.requireOsLogin \
    --project=project-id

다음을 바꿉니다.

조직 외부 사용자에게 인스턴스 액세스 권한 부여

기본적으로 조직 외부 사용자는 조직 내 인스턴스에 SSH 키를 설정하거나 조직 내 인스턴스 접근 권한을 부여받을 수 없습니다. 그러나 다른 조직에 속한 사용자 또는 일반 사용자 Google gmail.com 계정이 있는 사용자에게 인스턴스 액세스 권한을 부여해야 하는 경우가 있을 수 있습니다.

roles/compute.osLoginExternalUser IAM 역할은 외부 Google 계정이 POSIX 계정 정보를 구성하도록 허용하여 다른 OS 로그인 역할과 상호 작용하도록 합니다.

roles/compute.osLoginExternalUser와 필요한 다른 OS 로그인 인스턴스 액세스 역할을 조직 외부의 사용자에게 부여하려면 다음 단계를 완료하세요.

  1. Google Cloud Console에서 프로젝트 및 조직 선택 페이지로 이동합니다.

    프로젝트 및 조직 선택 페이지로 이동

  2. 조직 드롭다운 메뉴에서 소속 조직을 선택합니다.
    1. 소속된 모든 조직을 보려면 전체를 클릭합니다.
    2. 조직 이름을 클릭합니다.
  3. 추가를 클릭해 새 역할을 사용자에게 추가합니다.
  4. 인스턴스 액세스 권한을 구성할 사용자의 사용자 이름을 지정합니다.
  5. 역할 선택을 클릭해 사용자에게 부여할 역할을 지정합니다.
  6. Compute Engine 역할 목록에서 Compute OS 로그인 외부 사용자 역할을 선택합니다.
  7. 추가를 클릭해 선택한 역할을 사용자에게 부여하겠다는 의사를 확인합니다.
  8. 아직 수행 전이라면 프로젝트 또는 조직 수준에서 사용자에게 다른 OS 로그인 인스턴스 액세스 역할을 부여합니다.

이제 사용자가 OS 로그인이 사용 설정된 프로젝트의 인스턴스에 연결할 수 있습니다.

OS 로그인 API 관리

조직 수준에서 G Suite 관리자 제어를 설정하여 OS 로그인 API 액세스 권한을 제한할 수 있습니다. G Suite 관리자 제어를 구성하거나 구성 옵션을 확인하려면 조직 내에서 Google Cloud를 사용할 사용자 지정하기를 참조하세요. G Suite 관리자는 OS 로그인 API의 특정 기능도 사용 또는 사용 중지할 수 있습니다. 여기에는 다음 옵션이 포함됩니다.

  • OS 로그인 API로 생성된 사용자 이름에 도메인 서픽스를 포함할지 여부를 선택합니다. 예를 들어 example.com 도메인에서 도메인 서픽스를 포함하는 설정을 선택하지 않으면 사용자 user@example.com의 사용자 이름은 user입니다.
  • 조직의 구성원이 OS 로그인 API를 사용하여 SSH 키를 관리할 수 있는지 결정합니다.
  • 조직 외부의 사용자에게 VM 액세스를 제한하거나 허용합니다.

OS 로그인 API 설정 사용 또는 사용 중지에 대한 자세한 내용은 Google Cloud Platform 설정 선택을 참조하세요.

OS 로그인 이벤트 감사

G Suite 관리자는 G Suite Admin SDK를 사용하여 OS Login API로 수행하는 작업을 감사할 수 있습니다. 이벤트를 검토하면 사용자가 언제 SSH 키를 추가, 삭제 또는 업데이트하거나 POSIX 계정 정보를 삭제하는지 추적할 수 있습니다.

applicationName=gcpActivities.list()를 호출하여 G Suite Admin SDK에서 OS Login API 감사 활동 이벤트를 검색할 수 있습니다. 자세한 내용은 G Suite Admin SDK Reports API 문서의 Google Cloud 활동 이벤트를 참조하세요.

Directory API를 사용한 사용자 계정 수정

인스턴스에 연결할 때 OS 로그인에서는 Cloud ID 또는 G Suite 사용자 설정을 사용합니다. 조직 관리자는 Directory API를 사용하여 G Suite 또는 Cloud ID 사용자 계정에 대해 다음 태스크를 완료할 수 있습니다.

  • 인스턴스 로그인 설정 수정
  • 사용자를 관리자로 지정
  • 계정 이름, 이메일 같은 사용자 속성 수정
  • 사용자의 SSH 키 추가 및 삭제
  • POSIX 계정 정보 수정
  • 사용자가 인스턴스에서 연결하는 사용자 이름 변경

수정할 수 있는 계정 속성에 대한 자세한 내용은 Directory API 참조를 확인하세요.

예를 들어 directory.users.update 메서드에 대한 PUT 요청을 작성하고 사용자 계정을 변경할 속성을 하나 이상 지정합니다.

PUT https://www.googleapis.com/admin/directory/v1/users/user-id-key

{
 "posixAccounts": [
   {
    "username": "user-name",
    "uid": "uid",
    "gid": "gid",
    "homeDirectory": "user-home-path",
    "shell": "shell-path"
   }
  ],
}

다음을 바꿉니다.

  • user-id-key: 변경 불가능한 사용자 ID입니다.
  • user-name: Compute Engine에서 사용자의 인스턴스에 추가하는 사용자 이름입니다. 이 값은 조직 내에서 고유해야 합니다. 이 user-name은 물결표('~')로 끝나거나 마침표('.')를 포함해서는 안 됩니다. VM에서 sudo 명령어를 실행할 때 문제가 발생할 수 있습니다.
  • uid: 이 사용자의 인스턴스 사용자 ID입니다. 이 속성 값은 1001~60000 또는 65535~2147483647이어야 합니다. 컨테이너 최적화 OS에 액세스하려면 UID 값이 65536~214748646이어야 합니다. UID는 조직 내에서 고유해야 합니다.
  • gid: 이 사용자가 속한 인스턴스의 그룹 ID입니다.
  • user-home-path: 이 사용자의 인스턴스 홈 디렉터리입니다. 예를 들면 /home/example_username입니다.
  • shell-path: 사용자가 인스턴스에 연결한 후의 기본 셸 경로입니다. 예를 들면 /bin/bash 또는 /bin/sh입니다.

다음 단계