このガイドでは、Monitoring エージェントを認可するために、VM インスタンスに秘密鍵サービス アカウントの認証情報をインストールする方法を説明します。エージェントをインストールする前に、エージェントが必要とする認証情報が VM インスタンスに存在することを確認します。エージェントには、Monitoring に情報を送信するための権限が必要です。権限は、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
出力で次の 1 つまたは複数の認証スコープを探します。
https://www.googleapis.com/auth/monitoring.write
https://www.googleapis.com/auth/monitoring.admin
https://www.googleapis.com/auth/cloud-platform
認証情報の追加
「承認」とは、認証されたクライアントが一連のリソースに対してどのような権限を持つかを決定するためのプロセスです。
VM インスタンスで Monitoring エージェントを承認する手順は次のとおりです。
VM インスタンスに関連する Google Cloud プロジェクトでサービス アカウントを作成し、必要な権限と秘密鍵認証情報を設定します。
Amazon EC2 VM インスタンスの場合は、AWS アカウントの接続時に作成された
AWS Link
プロジェクトでこの操作を行います。VM インスタンスに秘密鍵認証情報をコピーします。これは、インスタンスで実行しているソフトウェアでアプリケーションのデフォルト認証情報として機能します。
サービス アカウントの作成
「認証」とは、クライアントの身元を判別するためのプロセスです。認証にはサービス アカウント(特定のユーザーではなく、Google Cloud プロジェクトに関連付けられた Google アカウント)を使用することをおすすめします。サービス アカウントは、コードが実行される場所(Compute Engine、App Engine、オンプレミス)に関係なく、認証に使用できます。詳細は、認証の概要をご覧ください。
サービス アカウントを作成するには、次の情報を使用してサービス アカウントの作成手順を完了します。
サービス アカウントを作成する Google Cloud プロジェクトを選択します。
Compute Engine インスタンスの場合は、インスタンスを作成したプロジェクトを選択します。
Amazon EC2 インスタンスの場合は、AWS アカウントを Google Cloud サービスに接続したときに作成された AWS コネクタ プロジェクトを選択します。
[ロール] プルダウン メニューで次のロールを選択します。
- [モニタリング] > [モニタリング指標の書き込み]。これは Monitoring エージェントを承認します。
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 コマンドライン ツールを使用します。[YOUR-INSTANCE-NAME]
と [YOUR-INSTANCE-ZONE]
は、Google Cloud 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 インスタンスには、エージェントが必要とする認証情報があります。
まだエージェントをインストールしていない場合は、エージェントのインストール ページに移動して、エージェントをインストールしてください。手順については、エージェントのインストールをご覧ください。
エージェントがすでにインストールされている場合は、新しい認証情報を使用するためにエージェントを再起動します。手順については、エージェントを再起動するをご覧ください。
認証情報を再度確認する場合は、秘密鍵認証情報を確認するをご覧ください。