VM 내에서 세분화된 액세스 구성


Compute Engine에서 OS 로그인을 사용하여 사용자에게 VM에 대한 액세스 권한을 부여하고 sudo 액세스 권한이 있는 사용자를 제한할 수 있습니다. VM에서 특정 파일과 실행 파일을 보거나 실행할 수 있는 사용자를 제어하려면 OS 정책을 사용하여 VM Fleet 내에서 파일 관리를 자동화하고 중앙화하는 정책을 출시하면 됩니다.

이 튜토리얼에서는 OS 로그인과 OS 정책을 사용하여 여러 VM에서 sudo 액세스 권한이 없는 사용자 그룹에게 auth.log 파일(/var/log/auth.log)에 대한 보기 권한을 부여하는 방법을 설명합니다.

대부분의 기본 구성에서 auth.log 파일 권한은 640으로 설정되며 adm 그룹에서 파일을 소유합니다. roles/compute.osAdminLogin IAM 역할이 부여되지 않은 사용자는 adm 그룹에 없고 sudo 액세스 권한이 없으므로 파일에 대한 읽기 액세스 권한이 없습니다.

이 튜토리얼에서는 특정 파일에 대한 사용자 권한을 관리하는 데 중점을 두지만 워크플로를 수정하여 VM에 있는 다른 파일이나 실행 파일에 대한 권한을 설정하는 데 사용할 수 있습니다.

목표

이 튜토리얼에서는 다음 방법을 학습합니다.

  • OS 로그인 Linux 그룹을 만드는 방법
  • OS 정책 할당을 사용하여 여러 VM에서 파일의 그룹 권한을 한 번에 변경하는 방법

비용

이 문서에서는 비용이 청구될 수 있는 다음과 같은 Google Cloud 구성요소를 사용합니다.

프로젝트 사용량을 기준으로 예상 비용을 산출하려면 가격 계산기를 사용하세요. Google Cloud를 처음 사용하는 사용자는 무료 체험판을 사용할 수 있습니다.

이 문서에 설명된 태스크를 완료했으면 만든 리소스를 삭제하여 청구가 계속되는 것을 방지할 수 있습니다. 자세한 내용은 삭제를 참조하세요.

Google Cloud를 처음 사용하는 사용자는 무료 체험판을 사용할 수 있습니다.

시작하기 전에

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  3. 최신 버전의 Google Cloud CLI를 설치하거나 업데이트합니다.
  4. 조직의 Cloud ID 그룹스 관리자인지 확인합니다. 그룹스 관리자가 아니라면 조직의 그룹스 관리자에게 OS 로그인 Linux 그룹을 만들도록 합니다.
  5. VM Manager를 사용 설정합니다.

환경 준비

auth.log 파일에 대한 액세스 권한을 부여하려면 먼저 VM을 여러 개 만들어야 합니다.

gcloud compute instances bulk create 명령어를 사용하여 VM을 3개 만듭니다.

gcloud compute instances bulk create \
    --name-pattern=tutorial-# \
    --zone=us-west1-a \
    --count=3 \
    --labels=vm=tutorial \
    --metadata=enable-oslogin=TRUE

다음과 유사한 메시지가 표시됩니다.

`Bulk create request finished with status message: [VM instances created: 3, failed: 0.]`

auth.log 파일의 그룹 권한 설정

roles/compute.osAdminLogin IAM 역할을 부여하지 않고 auth.log 파일에 대한 읽기 액세스 권한을 사용자에게 부여하려면 파일을 소유한 그룹을 사용자가 속한 Linux 그룹으로 변경합니다.

OS 로그인 Linux 그룹 만들기

OS 로그인 Linux 그룹을 만들어 OS 로그인이 사용 설정된 각 VM에 나타나는 보조 Linux 그룹을 추가할 수 있습니다. 로컬 보조 Linux 그룹 대신 OS 로그인 Linux 그룹을 만들면 모든 VM에 있는 Linux 그룹을 통합 방식으로 제어할 수 있습니다.

OS 로그인 Linux 그룹을 만들려면 gcloud beta identity groups create 명령어를 사용합니다.

gcloud beta identity groups create logaccess@ORGANIZATION_DOMAIN \
    --organization=ORGANIZATION_DOMAIN \
    --posix-group=gid=12345,name=logaccess

ORGANIZATION_DOMAIN을 조직과 연결된 도메인(example.com)으로 바꿉니다.

OS 정책 할당 만들기

OS 정책을 사용하여 VM 구성을 자동화하고 중앙화할 수 있습니다. OS 정책 할당을 사용하여 OS 정책을 VM에 적용합니다. auth.log 파일의 기본 그룹을 변경하는 OS 정책을 사용하여 OS 정책 할당을 만들면 한 번에 VM 하나에 변경사항을 적용하는 대신 한 번에 여러 VM에서 auth.log 파일의 기본 그룹을 변경할 수 있습니다.

OS 정책 할당을 만들려면 다음을 수행합니다.

  1. 워크스테이션에서 터미널을 엽니다.

  2. 다음 명령어를 실행하여 OS 정책 할당 .yaml 파일을 만듭니다.

    touch tutorial-os-policy-assignment.yaml
    
  3. 텍스트 편집기에서 tutorial-os-policy-assignment.yaml 파일을 열고 다음 사양을 추가합니다.

    # OS policy assignment that sets the /var/log/auth.log group to logaccess.
    osPolicies:
     - id: log-access-policy
       mode: ENFORCEMENT
       resourceGroups:
           resources:
             - id: grant-log-access
               exec:
                 validate:
                   # Checks if the group is logaccess. If yes, exits  with code 100. If no,
                   # exits with code 101 and proceeds to the `enforce` step.
                   script:
                     if stat -c '%G' /var/log/auth.log | grep -q 'logaccess'; then exit 100; else exit 101; fi
                   interpreter: SHELL
                 enforce:
                   # Changes the group to logaccess and exits with code 100.
                   script:
                     chgrp logaccess /var/log/auth.log && exit 100
    instanceFilter:
     inclusionLabels:
       - labels:
           vm: tutorial
    rollout:
     disruptionBudget:
       fixed: 10
     minWaitDuration: 30s
    

VM에 OS 정책 할당 적용

OS 정책 할당을 VM에 적용하려면 다음을 수행합니다.

  1. gcloud compute os-config os-policy-assignments create 명령어를 사용하여 OS 정책을 적용합니다.

    gcloud compute os-config os-policy-assignments create log-access-assignment \
       --location=us-west1-a \
       --file=log-access-os-policy-assignment.yaml \
       --async
    

    OS 정책 할당은 tutorial-os-policy-assignment.yaml 파일에 멘션된 출시 사양에 따라 VM에 출시됩니다.

  2. OS 정책 할당이 VM에 성공적으로 출시되었고 gcloud compute os-config os-policy-assignment-reports list 명령어를 사용하여 기본 그룹을 성공적으로 업데이트했는지 확인합니다.

    gcloud compute os-config os-policy-assignment-reports list --location=us-west1-a
    

OS 로그인 Linux 그룹에 사용자 추가

OS 로그인 Linux 그룹에 사용자를 추가하면 사용자가 OS 로그인이 사용 설정된 모든 VM에서 그룹 권한을 상속합니다. 이 튜토리얼에서는 logaccess 그룹에 추가한 모든 사용자가 roles/compute.osAdminLogin IAM 역할이 없어도 auth.log 파일을 볼 수 있습니다.

logaccess 그룹에 사용자를 추가하는 방법은 Cloud ID 도움말 문서를 참조하세요.

삭제

이 튜토리얼에서 사용된 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 리소스가 포함된 프로젝트를 삭제하거나 프로젝트를 유지하고 개별 리소스를 삭제하세요.

프로젝트 삭제

  1. Google Cloud 콘솔에서 리소스 관리 페이지로 이동합니다.

    리소스 관리로 이동

  2. 프로젝트 목록에서 삭제할 프로젝트를 선택하고 삭제를 클릭합니다.
  3. 대화상자에서 프로젝트 ID를 입력한 후 종료를 클릭하여 프로젝트를 삭제합니다.

개별 리소스 삭제

gcloud compute instances delete 명령어를 사용하여 만든 VM을 삭제합니다.

gcloud compute instances delete tutorial-1 tutorial-2 tutorial-3 \
    --zone=us-west1-a

다음 단계