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

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

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

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

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

  1. GCP プロジェクトで Cloud Resource Manager API が有効になっていることを確認します。
    1. Google Cloud Console を開き、ステップ 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
    ...

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

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

検証に失敗すると、ランタイム デプロイが停止し、apigeectl が終了します。サービス アカウントのエラーを解決する場合、次の順序で権限を確認します。

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

    特定の環境の 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 ハイブリッドの各コンポーネントに必要な権限を確認するには、ハイブリッド コンポーネントで使用するサービス アカウントとロールをご覧ください。

権限の検証を無効にする

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

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