サービス アカウントの検証

Apigee ハイブリッドには、サービス アカウント キーの場所が正しいことと Google Cloud プロジェクトでサービス アカウントに適切な権限が付与されていることを検証する機能があります。この検証はデフォルトで有効になっています。

ここでは、サービス アカウントの検証を有効または無効にする方法について説明します。また、検証を行うには Google Cloud プロジェクトで適切な API が有効になっている必要があります。この確認方法についても説明します。

サービス アカウントの権限検証を有効にする

権限の検証を有効にするには:

  1. Google Cloud プロジェクトで Cloud Resource Manager API が有効になっていることを確認します。
    1. Google Cloud コンソールを開き、ステップ 1: Google Cloud アカウントを作成するで作成したアカウントでログインします。
    2. ステップ 2: Google Cloud プロジェクトを作成するで作成したプロジェクトを選択します。
    3. [API とサービス] > [ライブラリ] を選択します。
    4. 「Cloud Resource Manager」を検索します。
    5. Cloud Resource Manager API サービスを探してクリックします。
    6. 有効になっていない場合は、[有効にする] をクリックします。

    gcloud で API を有効にすることもできます。

    gcloud services enable cloudresourcemanager.googleapis.com --project GCP_PROJECT_ID
  2. オーバーライド ファイルで validateServiceAccounts プロパティを追加し、true に設定します。次に例を示します。
    ...
    # Enables strict validation of service account permissions.
    validateServiceAccounts: true
    ...

検証を有効にすると、Apigee ハイブリッド ランタイム コンポーネントの構成変更をクラスタに適用するたびに、オーバーライド ファイルに含まれるサービス アカウント キーが Helm チャートによって検証されます。

検証エラーのトラブルシューティング

検証で不合格だと、ランタイム デプロイが停止し、helm upgrade または helm install が終了します。サービス アカウントのエラーのトラブルシューティングを行う際は、検証時に次の順序で権限が確認されることを知っておくと役立ちます。

  1. プロジェクト ID での権限。
  2. (UDCA と Synchronizer の場合のみ)プロジェクトの権限チェックに失敗した場合、検証は Apigee 環境の IAM ポリシーに対する権限チェックに進みます。これらのサービス アカウントのスコープは環境となっており、きめ細かい権限が環境でサポートされています。

    特定の環境の IAM ポリシーを更新するには、ハイブリッド UI に移動します。[Admin] > [Environments] > [Access] の順に移動します。

たとえば、権限チェックに失敗した場合は、次のようなエラー メッセージが表示されます。

Invalid Metrics Service Account. Service Account
"apigee-metrics@hybrid-project.iam.gserviceaccount.com" is missing 1 or more required
permissions [monitoring.metricDescriptors.create monitoring.metricDescriptors.get monitoring.metricDescriptors.list
monitoring.monitoredResourceDescriptors.get monitoring.monitoredResourceDescriptors.list monitoring.timeSeries.create].
Visit Service accounts and roles used by
hybrid components for more details on setting up Apigee hybrid service account permissions.

このエラーに対応するには、必要なロールをサービス アカウントに追加します。サービス アカウントの作成と変更の詳細については、サービス アカウントを作成するをご覧ください。Apigee ハイブリッドの各コンポーネントに必要な権限を確認するには、ハイブリッド コンポーネントで使用するサービス アカウントとロールをご覧ください。

権限検証を無効にする

サービス アカウントの権限検証を無効にするには、次の例のように、オーバーライド ファイルの validationServiceAccounts プロパティを false に設定します。

...
# Enables strict validation of service account permissions.
validateServiceAccounts: false
...