サービス アカウントは Google Cloud の特別なアカウントで、このアカウントを使用すると、システムのコンポーネントやアプリケーションが相互にやり取りしたり、他の API とやり取りしたりできます。Google Cloud の詳細については、Google Cloud サービスについてをご覧ください。
ハイブリッドでは、Google Cloud サービス アカウントを使用して次のようなさまざまなタスクを行います。
- ログと指標データを送信する
- トレース リクエストを取得する
- 管理 API リクエスト用の API ゲートウェイに接続する
- バックアップを実行する
- プロキシ バンドルのダウンロード
1 つのサービス アカウントでこれらすべての操作を行うことができますが、Apigee では複数のサービス アカウントを作成して、それぞれのアカウントに特定のタスクと独自の権限セットを割り当てることをおすすめします。これにより、アクセスを切り分け、各サービス アカウントのスコープとアクセス権を制限して、セキュリティを強化できます。ユーザー アカウントと同様に、1 つ以上のロールをサービス アカウントに割り当てることで、これらの権限は適用されます。
ハイブリッド コンポーネントで使用されるサービス アカウントとロール
Apigee ハイブリッドを適切に機能させるには、複数のサービス アカウントを作成する必要があります。サービス アカウントごとに、その機能を実行できるロールを付与する必要があります(複数のロールが必要になることもあります)。
次の表は、ハイブリッド コンポーネントのサービス アカウントを示したものです。
コンポーネント* | 役割 | 基本インストールに必要かどうか | 説明 |
---|---|---|---|
apigee-cassandra |
ストレージのオブジェクト管理者 | バックアップと復元に説明されているように、Cassandra が Cloud Storage(CS)へのバックアップを実行できるようにします。 | |
apigee-logger |
ログ書き込み | ロギングデータの収集を可能にします(ロギングを参照)。クラスタが GKE 以外にインストールされている場合にのみ必要です。 | |
apigee-mart |
Apigee Connect エージェント | MART サービスの認証を許可します。Apigee Connect エージェント ロールにより、Apigee Connect プロセスと安全に通信を行えるようにします(Apigee Connect の使用を参照)。 | |
apigee-metrics |
モニタリング指標の書き込み | 指標データの収集を可能にします(指標収集の概要を参照)。 | |
apigee-org-admin |
Apigee 組織管理者 | ユーザーが getSyncAuthorization API と setSyncAuthorization API を呼び出せるようにします。create-service-account ツールでこのサービス アカウントは作成できません。 |
|
apigee-synchronizer |
Apigee Synchronizer 管理者 | Synchronizer がプロキシ バンドルと環境構成データをダウンロードできるようにします。また、トレース機能も有効にします。 | |
apigee-udca |
Apigee アナリティクス エージェント | トレース、分析、デプロイのステータス データを管理プレーンに転送できるようにします。 | |
apigee-watcher |
Apigee ランタイム エージェント | Apigee Watcher は、synchronizer から組織の仮想ホスト関連の変更を pull し、istio Ingress を構成するために必要な変更を行います。 | |
* この名前は、ダウンロードされたサービス アカウント キーのファイル名で使用されます。 |
この表にあるサービス アカウントを作成するだけでなく、秘密鍵もダウンロードします。後でこれらの鍵を使用してアクセス トークンを生成することで、Apigee API にアクセスできるようになります。
サービス アカウントを作成する
サービス アカウントを作成するには、次に挙げる方法があります。
それぞれの方法について、以降のセクションで詳しく説明します。
サービス アカウント作成ツールを使用する
create-service-account
ツール(apigeectl
のダウンロードと展開後に使用可能)は、ハイブリッド コンポーネント固有のサービス アカウントを作成し、必要なロールを割り当てます。さらに、このツールはサービス アカウント キーを自動的にダウンロードし、ローカルマシンの指定されたディレクトリに保存します。
create-service-account
ツールでサービス アカウントを作成する
- apigeectl のダウンロードとインストールの説明に従って、
apigeectl
をダウンロードして展開します(また行っていない場合)。 - サービス アカウント キーを保存するディレクトリを作成します。次に例を示します。
mkdir ./service-accounts
- 次のコマンドを実行します。
./tools/create-service-account apigee-metrics ./service-accounts
./tools/create-service-account apigee-synchronizer ./service-accounts
./tools/create-service-account apigee-udca ./service-accounts
./tools/create-service-account apigee-mart ./service-accounts
./tools/create-service-account apigee-cassandra ./service-accounts
./tools/create-service-account apigee-logger ./service-accounts
これらのコマンドを実行すると、必要なアカウントのほとんどが作成され、そのアカウントの鍵が
./service-accounts
ディレクトリに保存されます。これらのコマンドでは、apigee-org-admin
サービス アカウントは作成されません。上記のコマンドが失敗した場合は、鍵ファイルを保存した既存のディレクトリを参照していることを確認してください。
create-service-account
の使用の詳細については、create-service-account のリファレンスをご覧ください。 apigee-org-admin
サービス アカウントを作成します。この操作を行うには、Google Cloud Console を使用します。
Google Cloud Console を使用する
Google Cloud Console を使用してサービス アカウントを作成できます。
Google Cloud Console でサービス アカウントを作成するには:
- Google Cloud Console を開き、ステップ 1: Google Cloud アカウントを作成するで作成したユーザー アカウントでログインします。
- ステップ 2: Google Cloud プロジェクトを作成するで作成したプロジェクトを選択します。
- [IAM と管理] > [サービス アカウント] を選択します。
コンソールに [サービス アカウント] ビューが表示されます。このビューには、プロジェクトに作成されているサービス アカウントの一覧が表示されます(ほとんどの場合、表示されるアカウントはありませんが、プロジェクトの作成方法によっては、デフォルトのサービス アカウントが表示されることもあります)。
- 新しいサービス アカウントを作成するには、ビューの上部にある [+サービス アカウントを作成] をクリックします。
[サービス アカウントの詳細] ビューが表示されます。
- [サービス アカウント名] フィールドに、サービス アカウントの名前を入力します。
Apigee では、サービス アカウントのロールを反映した名前を使用することをおすすめします。サービス アカウントの名前には、そのサービス アカウントを使用するコンポーネントと同じ名前に設定することもできます。たとえば、ログ書き込みサービス アカウントの名前を
apigee-logger
に設定します。サービス アカウントの名前とロールの詳細については、ハイブリッド コンポーネントで使用されるサービス アカウントとロールをご覧ください。
名前を入力すると、次の例のように、Google Cloud によってメールアドレスのような固有のサービス アカウント ID が生成されます。
必要に応じて、[サービス アカウントの説明] 欄に説明を追加できます。説明は特定のサービス アカウントの用途を確認する際に有用です。
- [作成] をクリックします。
Google Cloud によって新しいサービス アカウントが作成され、次の例のように [サービス アカウント権限] ビューが表示されます。
このビューを使用して、新しいサービス アカウントにロールを割り当てます。
- [ロールを選択] プルダウン リストをクリックします。
- ハイブリッド コンポーネントで使用するサービス アカウントとロールの説明に従って、サービス アカウントのロールを選択します。Apigee のロールがプルダウン リストに表示されない場合は、ページを更新します。
たとえば、Logging コンポーネントの場合は、[ログ書き込み] ロールを選択します。
必要に応じて、テキストを入力してロールのリストを名前でフィルタリングします。たとえば、Apigee のロールのみを表示するには、フィルタ フィールドに「Apigee」と入力します。例を次に示します。
サービス アカウントには複数のロールを追加できますが、Apigee では、推奨されるサービス アカウントごとに 1 つのロールのみを使用することをおすすめします。サービス アカウントの作成後にロールを変更するには、Google Cloud の [IAM と管理] パネルを使用します。
- [続行] をクリックします。
Google Cloud に [ユーザーにこのサービス アカウントへのアクセスを許可] ビューが表示されます。
- [鍵の作成(オプション)] の下にある [鍵を作成] をクリックします。
Google Cloud には、JSON または P12 キーのどちらかをダウンロードする選択肢が用意されています。
- JSON(デフォルト)を選択し、[作成] をクリックします。
Google Cloud がキーファイルを JSON 形式でローカルマシンに保存し、成功すると、次のような確認メッセージが表示されます。
後でサービス アカウントの鍵の一部を使用して、ハイブリッド ランタイム サービスを構成します。たとえば、ハイブリッド ランタイムを構成する場合、service_name
.serviceAccountPath
プロパティを使用して、サービス アカウントの鍵の場所を指定します。サービス アカウントは、これらの鍵を使用してアクセス トークンを取得した後、トークンを使用しユーザーに代わって Apigee API へのリクエストを送信します(ただし、今すぐには使用しません。保存した場所を記憶するにとどめてください)。
- ハイブリッド コンポーネントで使用されるサービス アカウントとロールに記載されてサービス アカウントごとに手順 4~11 を繰り返します(ただし、
apigee-mart
アカウントは除きます。このアカウントに関連付けられたロールがないため、ロールを割り当てないでください)。完了すると、以下のサービス アカウント(デフォルトのサービス アカウントが存在すればそのアカウントも)が表示されるはずです。
Google Cloud Console では、サービス アカウントに
アイコンが表示されます。
サービス アカウントの作成後にロールを追加または削除するには、[IAM と管理] ビューを使用します。サービス アカウントのロールは、[サービス アカウント] ビューでは管理できません。
gcloud のサービス アカウント作成 API を使用する
サービス アカウントは、Cloud Identity and Access Management API で作成および管理できます。
詳細については、サービス アカウントの作成と管理をご覧ください。