授權代理程式

本指南說明如何在 VM 執行個體上安裝私密金鑰服務帳戶憑證,來授權 Stackdriver Logging 與 Monitoring 代理程式。

如果您符合下列任一條件,請閱讀本指南:

  • 您知道您需要安裝這些憑證。例如,您正在使用 Amazon EC2 VM 執行個體

  • 您懷疑 VM 執行個體上的現有憑證無效,並且想要將這些憑證取代為有效的憑證。

您可以使用下列指令檢查 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.

新增憑證

授權是指判定經驗證的用戶端對一組資源具有哪些權限的程序。

授權 VM 執行個體上的 Stackdriver Logging 與 Monitoring 代理程式涉及下列步驟:

  1. 建立在與 VM 執行個體相關聯的 GCP 專案中具有必要權限與私密金鑰憑證的服務帳戶。針對 Amazon EC2 VM 執行個體,您會在 AWS Link 專案中執行這項動作,Stackdriver 會在您連結 AWS 帳戶時代表您建立該專案。

  2. 將私密金鑰憑證複製到您的 VM 執行個體,這些憑證可做為在您的執行個體上執行之軟體的應用程式預設憑證

  3. 安裝或重新啟動代理程式

建立服務帳戶

驗證是指判定用戶端身分的程序。建議針對驗證使用服務帳戶:與 GCP 專案相關聯,而非與特定使用者相關聯的 Google 帳戶。無論您的程式碼是在哪裡執行 (在本機、Compute Engine、App Engine、內部部署等),都可以使用服務帳戶來驗證。詳情請參閱驗證總覽一文。

如要建立服務帳戶,請按照建立服務帳戶的操作說明操作。 在「角色」下拉式選單中,選取下列兩個角色:

  • [Logging] > [Logs Writer] (記錄寫入者)。這樣會授權 Stackdriver Logging 代理程式。
  • [Monitoring] > [Monitoring Metric Writer] (監控指標寫入者)。這樣會授權 Stackdriver Monitoring 代理程式。新增此角色可讓您使用此服務帳戶執行這兩個 Stackdriver 代理程式。

為了方便您在下面的操作說明中參考,請將 CREDS 變數設定為指向工作站上的憑證檔案。例如:

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

將私密金鑰複製到您的執行個體

針對要辨識的已新增的服務帳戶憑證,您必須使用您想要使用的任何檔案複製工具,將私密金鑰檔案複製到 VM 執行個體上的下列其中一個位置:

  • 僅限 Linux/etc/google/auth/application_default_credentials.json
  • 僅限 WindowsC:\ProgramData\Google\Auth\application_default_credentials.json
  • Linux 或 Windows:您儲存在 GOOGLE_APPLICATION_CREDENTIALS 變數中的任意位置。代理程式程序必須能夠看見這個變數。

以下檔案複製操作說明假設您在工作站與執行個體上都擁有 Linux 環境。如果您使用其他環境,請參閱雲端服務供應商的說明文件,瞭解如何複製私密金鑰檔案。在上一步建立服務帳戶中,您的私密金鑰憑證應已儲存在工作站上,此位置保存在 CREDS 變數中:

Compute Engine

在工作站上,使用 gcloud 指令列工具。您可在 GCP 主控台的「VM Instances」(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 執行個體現在已經具有代理程式需要的憑證了。

  • 如果您尚未安裝代理程式,請返回代理程式安裝頁面,安裝代理程式。如需操作說明,請參閱安裝 Logging 代理程式一文。
  • 如果您已經安裝代理程式,請重新啟動代理程式以使用新憑證。如需操作說明,請參閱重新啟動代理程式
  • 如果您想要再次確認憑證,請參閱驗證私密金鑰憑證一節。
本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Stackdriver Logging
需要協助嗎?請前往我們的支援網頁