サービス アカウントについて

サービス アカウントは 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 APIsetSyncAuthorization API を呼び出せるようにします。create-service-account ツールを使用してこのサービス アカウントを作成することはできません。
apigee-synchronizer Apigee Synchronizer 管理者 Synchronizer がプロキシ バンドルと環境構成データをダウンロードできるようにします。また、トレース機能も可能にします。
apigee-udca Apigee Analytics エージェント トレース、分析、デプロイのステータス データを管理プレーンに転送できるようにします。
* この名前は、ダウンロードされたサービス アカウント キーのファイル名で使用されます。

この表にあるサービス アカウントを作成するだけでなく、秘密鍵もダウンロードします。後でこれらの鍵を使用してアクセス トークンを生成し、Apigee API にアクセスします。

サービス アカウントを作成する

サービス アカウントを作成するには、いくつかの方法があります。

それぞれについて、以降のセクションで詳しく説明します。

サービス アカウント作成ツールを使用する

create-service-account ツール(apigeectl のダウンロードと展開後に使用可能)は、ハイブリッド コンポーネント固有のサービス アカウントを作成し、必要な役割を割り当てます。また、サービス アカウント キーを自動的にダウンロードし、ローカルマシンの指定ディレクトリに保存します。

create-service-account ツールでサービス アカウントを作成するには:

  1. apigeectl のダウンロードとインストールの説明に従って、apigeectl をダウンロードして展開します。
  2. サービス アカウント キーを格納するディレクトリを作成します。例:
    mkdir ./service-accounts
  3. 次のコマンドを実行します。
    ./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 をご覧ください。

  4. apigee-org-admin サービス アカウントを作成します。これを行うには、GCP Console を使用します。

GCP Console を使用する

GCP Console を使用してサービス アカウントを作成できます。

GCP Console でサービス アカウントを作成するには:

  1. Google Cloud Platform(GCP)Console を開き、ステップ 1: GCP アカウントを作成するで作成したユーザー アカウントでログインします。
  2. ステップ 2: GCP プロジェクトを作成するで作成したプロジェクトを選択します。
  3. [IAM と管理] > [サービス アカウント] の順に選択します。

    コンソールに [サービス アカウント] ビューが表示されます。このビューには、プロジェクトに作成されているサービス アカウントの一覧が表示されます(多くの場合、この段階ではまだアカウントは表示されません。プロジェクトの作成方法によっては、デフォルトのサービス アカウントが表示されていることがあります)。

  4. 新しいサービス アカウントを作成するには、ビューの上部にある [+ サービス アカウントを作成] をクリックします。

    [サービス アカウントの詳細] ビューが表示されます。

  5. [サービス アカウント名] フィールドに、サービス アカウントの名前を入力します。

    サービス アカウントの役割を反映する名前を使用することをおすすめします。サービスを使用するコンポーネントと同じ名前にすることもできます。たとえば、ログ書き込みサービス アカウントの名前を apigee-logger に設定します。

    サービス アカウントの名前と役割の詳細については、ハイブリッド コンポーネントで使用されるサービス アカウントと役割をご覧ください。

    名前を入力すると、次の例のように、メールアドレスのような固有のサービス アカウント ID が生成されます。

    必要に応じて [サービス アカウントの説明] フィールドに説明を追加できます。説明は、特定のサービス アカウントの用途を把握するのに役立ちます。

  6. [作成] をクリックします。

    新しいサービス アカウントが作成され、次のように サービス アカウントの権限ビューが表示されます。

    このビューを使用して、新しいサービス アカウントに役割を割り当てます。

  7. [役割を選択] プルダウン リストをクリックします。
  8. ハイブリッド コンポーネントで使用するサービス アカウントと役割の説明に従って、サービス アカウントの役割を選択します。

    たとえば、Logging コンポーネントの場合は、ログ書き込み役割を選択します。

    必要に応じて、テキストを入力して役割のリストを名前でフィルタリングします。たとえば、Apigee の役割のみを表示するには、フィルタ フィールドに「Apigee」と入力します。例を次に示します。

    サービス アカウントには複数の役割を追加できますが、推奨のサービス アカウントごとに 1 つの役割を使用することをおすすめします。サービス アカウントの作成後に役割を変更するには、GCP の [IAM と管理] パネルを使用します。

  9. [続行] をクリックします。

    GCP に [ユーザーにこのサービス アカウントへのアクセスを許可] が表示されます。

  10. [キーの作成(オプション)] で [鍵を作成] をクリックします。

    GCP では、JSON または P12 キーをダウンロードできます。

  11. JSON を選択して [作成] をクリックします。

    キーファイルが JSON 形式でローカルマシンに保存されます。成功すると、次のような確認が表示されます。

    後でサービス アカウント キーの一部を使用して、ハイブリッド ランタイム サービスを構成します。たとえば、ハイブリッド ランタイムを構成する場合、service_name .serviceAccountPath プロパティを使用して、サービス アカウント キーの場所を指定します。

    これらのキーは、サービス アカウントがアクセス トークンを取得するために使用します。その後、Apigee API へのリクエスト送信で使用されます(まだ使用しませんが、保存場所だけは覚えておいてください)。

  12. ハイブリッド コンポーネントで使用されるサービス アカウントと役割にあるサービス アカウントごとに手順 4~11 を繰り返します(ただし、apigee-mart アカウントは除きます。このアカウントに関連する役割がないため、役割を割り当てません)。

    完了すると、次のサービス アカウントとデフォルト アカウント(存在する場合)が表示されます。

    GCP Console で、サービス アカウントには が付いています。

サービス アカウントの作成後に役割を追加または削除するには、[IAM と管理] ビューを使用します。サービス アカウントの役割は、[サービス アカウント] ビューで管理できません。

gcloud サービス アカウント作成 API を使用する

サービス アカウントは、Cloud Identity and Access Management API で作成および管理できます。

詳細については、サービス アカウントの作成と管理をご覧ください。

トラブルシューティング