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