エージェントの承認

このガイドでは、Stackdriver Logging エージェント、Stackdriver Monitoring エージェントを承認するために、VM インスタンスに秘密鍵サービス アカウント認証情報をインストールする方法を説明します。

このガイドは、次のいずれかの場合にお読みください。

  • これらの認証情報のインストールが必要なことがわかっている場合(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

出力で次の 1 つまたは複数の承認スコープを探します。

  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 アカウントの接続時に Stackdriver がユーザーの代わりに作成した AWS Link プロジェクトでこの操作を行います。

  2. VM インスタンスに秘密鍵認証情報をコピーします。これは、インスタンスで実行しているソフトウェアでアプリケーションのデフォルトの認証情報として機能します。

  3. エージェントをインストールまたは再起動します。

サービス アカウントの作成

「認証」とは、クライアントの身元を判別するためのプロセスです。認証には、サービス アカウント、つまり、特定のユーザーではなく、GCP プロジェクトに関連付けられている Google アカウントを使用することをおすすめします。サービス アカウントは、コードが実行される場所(ローカル、Compute Engine、App Engine、オンプレミスなど)に関係なく、認証に使用できます。詳細については、認証の概要をご覧ください。

サービス アカウントを作成するには、サービス アカウントの作成の手順に従ってください。[役割] メニューで、次の両方の役割を選択します。

  • [ロギング] > [Logs Writer]。これは、Stackdriver Logging エージェントを承認します。
  • [モニタリング] > [Monitoring Metric Writer]。これは、Stackdriver Monitoring エージェントを承認します。この役割を追加すると、このサービス アカウントを使用して両方の Stackdriver エージェントを実行できます。

次の手順の便宜を図るために、ワークステーション上の認証情報ファイルを指すように変数 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 コマンドライン ツールを使用します。[YOUR-INSTANCE-NAME][YOUR-INSTANCE-ZONE] は、GCP Console の [VM インスタンス] ページで確認できます。

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 インスタンスには、エージェントが必要とする認証情報があります。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。