에이전트 승인

이 가이드에서는 VM 인스턴스에 비공개 키 서비스 계정 사용자 인증 정보를 설치하여 Logging 에이전트를 승인하는 방법을 설명합니다. 에이전트를 설치하기 전에 에이전트에 필요한 사용자 인증 정보가 VM 인스턴스에 있는지 확인하세요. 에이전트에는 Logging으로 정보를 전송할 수 있는 권한이 있어야 합니다. 권한은 VM 인스턴스에 저장된 서비스 계정 사용자 인증 정보를 사용하여 부여되며 에이전트의 애플리케이션 기본 사용자 인증 정보 역할을 합니다.

시작하기 전에

다음 중 한 가지에 해당된다면 이 가이드를 읽으세요.

  • 매우 오래된 Compute Engine 인스턴스나 기본 사용자 인증 정보 없이 생성된 Compute Engine 인스턴스를 실행하고 있다면 에이전트를 설치하기 전에 이 가이드의 단계를 완료해야 합니다. 이러한 VM에는 필요한 비공개 키 사용자 인증 정보가 없을 수 있습니다. 사용자 인증 정보를 확인하려면 Compute Engine 사용자 인증 정보 확인 절차를 완료하세요. 새로 생성된 Compute Engine VM 인스턴스에서는 에이전트에 필요한 사용자 인증 정보가 인스턴스의 기본 서비스 계정에 있습니다.

  • AWS EC2 VM 인스턴스를 실행하고 있다면 에이전트를 설치하기 전에 이 가이드의 단계를 완료해야 합니다. Amazon EC2 VM 인스턴스에는 필요한 서비스 계정이 없습니다. 대신 AWS 커넥터 프로젝트의 서비스 계정에서 비공개 키 사용자 인증 정보를 수동으로 가져와야 합니다. 인스턴스에 이미 비공개 키 사용자 인증 정보가 있다고 생각되면 비공개 키 사용자 인증 정보 확인 절차를 완료하여 사용자 인증 정보를 확인하세요. 비공개 키 사용자 인증 정보를 추가하려면 사용자 인증 정보 추가하기로 건너뜁니다.

다음 명령어를 사용하여 Compute Engine의 승인 범위를 확인할 수 있습니다.

curl --silent --connect-timeout 1 -f -H "Metadata-Flavor: Google" http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/scopes

출력에서 다음 승인 범위 중 하나 이상을 찾으세요.

https://www.googleapis.com/auth/logging.write
https://www.googleapis.com/auth/logging.admin
https://www.googleapis.com/auth/cloud-platform

사용자 인증 정보 추가하기

승인은 인증된 클라이언트가 특정 리소스 집합에 대해 갖는 권한을 결정하는 프로세스입니다.

VM 인스턴스에서 Logging 에이전트를 승인하려면 다음 단계를 수행해야 합니다.

  1. VM 인스턴스와 연결된 Google Cloud 프로젝트에서 필요한 권한과 비공개 키 사용자 인증 정보로 서비스 계정을 만듭니다.

    Amazon EC2 VM 인스턴스의 경우에는 AWS 계정을 연결할 때 생성되는 AWS Link 프로젝트에서 이 작업을 수행합니다.

  2. VM 인스턴스에 비공개 키 사용자 인증 정보를 복사합니다. 이 정보는 인스턴스에서 실행되는 소프트웨어의 애플리케이션 기본 사용자 인증 정보로 사용됩니다.

  3. 에이전트를 설치하거나 다시 시작합니다.

서비스 계정 만들기

인증은 클라이언트의 ID를 확인하는 프로세스입니다. 인증을 위해서는 특정 사용자가 아니라 서비스 계정, 즉 Google Cloud 프로젝트와 연결된 Google 계정을 사용하는 것이 좋습니다. 서비스 계정은 코드가 실행되는 위치가 Compute Engine이든 App Engine이든 또는 온프레미스이든 관계없이 인증에 사용할 수 있습니다. 자세한 내용은 인증 개요를 참조하세요.

서비스 계정을 만들려면 다음 정보로 서비스 계정 만들기 절차를 완료하세요.

  • 서비스 계정을 만들 Google Cloud 프로젝트를 선택합니다.

    • Compute Engine 인스턴스의 경우 인스턴스를 만든 프로젝트를 선택합니다. 작업공간 호스팅 프로젝트에 인스턴스를 만들었으면 해당 작업공간을 선택합니다.

    • Amazon EC2 인스턴스의 경우 AWS 계정에 Logging 에이전트를 연결할 때 생성된 AWS 커넥터 프로젝트를 선택합니다. 커넥터 프로젝트의 이름은 대개 AWS Link로 시작합니다. 작업공간 프로젝트에 서비스 계정을 만들지 마세요.

  • 역할 드롭다운 메뉴에서 다음 역할을 선택합니다.

    • 로깅 > 로그 작성자. Logging 에이전트가 로그를 수집하도록 승인합니다.
    • 모니터링 > 모니터링 측정항목 작성자. Logging 에이전트가 고유 상태 측정항목을 수집하도록 승인합니다.
  • 키를 만들 때 키 유형으로 JSON을 선택합니다.

편의를 위해 워크스테이션의 사용자 인증 정보 파일을 가리키는 CREDS 변수를 만들 수 있습니다. 예를 들면 다음과 같습니다.

    CREDS="~/Downloads/[PROJECT-NAME]-[KEY-ID].json"

이 절차의 나머지 부분에서는 해당 변수를 참조합니다.

인스턴스에 비공개 키 복사

서비스 계정을 만든 후에는 에이전트가 사용자 인증 정보를 인식할 수 있도록 비공개 키 파일을 VM 인스턴스의 다음 위치 중 하나로 복사해야 합니다. 원하는 파일 복사 도구를 사용할 수 있습니다.

  • Linux만 해당: /etc/google/auth/application_default_credentials.json

  • Windows만 해당: C:\ProgramData\Google\Auth\application_default_credentials.json

  • Linux와 Windows 모두의 경우: GOOGLE_APPLICATION_CREDENTIALS 변수에 저장한 모든 위치. 이 변수는 에이전트의 프로세스에 표시되어야 합니다.

다음 파일 복사 안내에서는 워크스테이션과 인스턴스 모두에 Linux 환경이 있다고 가정합니다. 다른 환경을 사용한다면 클라우드 제공업체의 문서에서 비공개 키 파일을 복사하는 방법을 확인하세요. 앞의 서비스 계정 만들기 단계에서 CREDS 변수에 저장한 워크스테이션상 위치에 비공개 키 사용자 인증 정보를 저장해야 합니다.

Compute Engine

워크스테이션에서 gcloud 명령줄 도구를 사용합니다. Google Cloud Console의 VM 인스턴스 페이지에서 [YOUR-INSTANCE-NAME][YOUR-INSTANCE-ZONE]을 확인할 수 있습니다.

REMOTE_USER="$USER"
INSTANCE="[YOUR-INSTANCE-NAME]"
ZONE="[YOUR-INSTANCE-ZONE]"
gcloud compute scp "$CREDS" "$REMOTE_USER@$INSTANCE:~/temp.json" --zone "$ZONE"

Compute Engine 인스턴스에서 다음 명령어를 실행합니다.

GOOGLE_APPLICATION_CREDENTIALS="/etc/google/auth/application_default_credentials.json"
sudo mkdir -p /etc/google/auth
sudo mv "$HOME/temp.json" "$GOOGLE_APPLICATION_CREDENTIALS"
sudo chown root:root "$GOOGLE_APPLICATION_CREDENTIALS"
sudo chmod 0400 "$GOOGLE_APPLICATION_CREDENTIALS"

Amazon EC2

워크스테이션에서 scp를 사용합니다.

KEY="[YOUR-SSH-KEY-PAIR-FILE]"
INSTANCE="ec2-[YOUR-INSTANCE'S-PUBLIC-ID.[YOUR-ZONE].compute.amazonaws.com"
# The remote user depends on the installed OS: ec2-user, ubuntu, root, etc.
REMOTE_USER="ec2-user"
scp -i "$KEY" "$CREDS" "$REMOTE_USER@$INSTANCE:~/temp.json"

EC2 인스턴스에서 다음 명령어를 실행합니다.

GOOGLE_APPLICATION_CREDENTIALS="/etc/google/auth/application_default_credentials.json"
sudo mkdir -p /etc/google/auth
sudo mv "$HOME/temp.json" "$GOOGLE_APPLICATION_CREDENTIALS"
sudo chown root:root "$GOOGLE_APPLICATION_CREDENTIALS"
sudo chmod 0400 "$GOOGLE_APPLICATION_CREDENTIALS"

다음 단계

이제 에이전트에 필요한 사용자 인증 정보가 VM 인스턴스에 있습니다.

  • 아직 에이전트를 설치하지 않았다면 에이전트 설치 페이지로 이동하여 에이전트를 설치합니다. 자세한 안내는 에이전트 설치를 참조하세요.

  • 이미 에이전트를 설치했다면 에이전트를 다시 시작하여 새 사용자 인증 정보를 사용합니다. 자세한 안내는 에이전트 다시 시작을 참조하세요.

  • 사용자 인증 정보를 다시 확인하려면 비공개 키 사용자 인증 정보 확인을 참조하세요.