Apigee ハイブリッドは、サービス アカウント キーの場所が正しく、GCP プロジェクトでアカウントに適切な権限が付与されていることを検証します。この検証はデフォルトで有効になっています。
ここでは、サービス アカウントの検証を有効または無効にする方法について説明します。また、検証を行うには GCP プロジェクトで適切な API が有効になっている必要があります。この確認方法についても説明します。
サービス アカウントの権限検証を有効にする
権限の検証を有効にするには:
- GCP プロジェクトで Cloud Resource Manager API が有効になっていることを確認します。
- Google Cloud コンソールを開き、ステップ 1: Google Cloud アカウントを作成するで作成したアカウントでログインします。
- ステップ 2: Google Cloud プロジェクトを作成するで作成したプロジェクトを選択します。
- [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 ポリシーに対する権限チェックに進みます。これらのサービス アカウントのスコープは環境となっており、きめ細かい権限が環境でサポートされています。
特定の環境の 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 ...