Apigee ハイブリッドは、サービス アカウント キーの場所が正しく、GCP プロジェクトでアカウントに適切な権限が付与されていることを検証します。この検証はデフォルトで有効になっています。
ここでは、サービス アカウントの検証を有効または無効にする方法について説明します。また、検証を行うには GCP プロジェクトで適切な API が有効になっている必要があります。この確認方法についても説明します。
サービス アカウントの権限検証を有効にする
権限の検証を有効にするには:
- GCP プロジェクトで Cloud Resource Manager API が有効になっていることを確認します。
- Google Cloud Platform(GCP)Console を開き、ステップ 1: GCP アカウントを作成するで作成したアカウントでログインします。
- ステップ 2: GCP プロジェクトを作成するで作成したプロジェクトを選択します。
- [API とサービス] > [ライブラリ] の順に選択します。
- 「Cloud Resource Manager」を検索します。
- Cloud Resource Manager API サービスを探してクリックします。
- 有効になっていない場合は、[有効] をクリックします。
gcloud で API を有効にすることもできます。
gcloud services enable cloudresourcemanager.googleapis.com --project GCP_project_ID
- オーバーライド ファイルで
validateServiceAccounts
プロパティを追加し、true
に設定します。例:... # Enables strict validation of service account permissions. validateServiceAccounts: true ...
検証が有効になると、apigeectl が Apigee ハイブリッド ランタイム コンポーネントをクラスタに適用するたびに、オーバーライド ファイルに含まれるサービス アカウント キーが検証されます。
検証エラーのトラブルシューティング
検証に失敗すると、ランタイム デプロイが停止し、apigeectl
が終了します。サービス アカウントのエラーを解決する場合、次の順序で権限を確認します。
- プロジェクト ID に対する権限。
- (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 https://docs.apigee.com/hybrid/precog-serviceaccounts#recommended-sas for more details on setting up Apigee hybrid service account permissions.
このエラーに解決するには、必要な役割をサービス アカウントに追加します。サービス アカウントの作成と変更の詳細については、サービス アカウントの作成をご覧ください。Apigee ハイブリッドの各コンポーネントに必要な権限を確認するには、ハイブリッド コンポーネントで使用するサービス アカウントと役割をご覧ください。
権限の検証を無効にする
サービス アカウントの権限検証を無効にするには、次の例のように、オーバーロード ファイルの validationServiceAccounts
プロパティを false
に設定します。
... # Enables strict validation of service account permissions. validateServiceAccounts: false ...