個々の Apigee ハイブリッド コンポーネントが承認された API 呼び出しを行うことを許可するロールを持つ Google Cloud サービス アカウントを作成し、そのアカウントに関連付けられたサービス アカウント キーファイルをダウンロードします。このコマンドによって生成されたサービス アカウント キーファイルは、構成オーバーライド ファイルで使用できます。
  create-service-account は、現在の Google Cloud プロジェクトまたは指定したプロジェクトに 1 つ以上のサービス アカウントを作成し、そのサービス アカウントに適切な IAM ロールを割り当てて、サービス アカウントの証明書ファイルをローカルマシンのディレクトリにダウンロードします。
create-service-account ツールは HYBRID_ROOT_DIR/tools ディレクトリにあります。
サービス アカウントの詳細と本番環境に推奨されるサービス アカウントの一覧については、以下をご覧ください。
Google Cloud コンソールでサービス アカウントを作成することもできます。サービス アカウントの作成と管理に関する記事もご覧ください。
前提条件
ロール
create-service-account ツールを使用するには、gcloud CLI をインストールする必要があります。このユーティリティを呼び出すユーザーには Service Account Admin ロールが必要です。
プロジェクト
  サービス アカウントは特定の Google Cloud プロジェクトにバインドされています。create-service-account は、現在のプロジェクトまたは指定したプロジェクトでサービス アカウントを作成し、IAM ロールをそのプロジェクト内のサービス アカウントにバインドします。また、create-service-account はサービス アカウント キーファイルの名前とメールにもプロジェクト ID を含めます。たとえば、プロジェクト名が my-hybrid-project の場合、apigee-logger サービス アカウント キーファイルの名前は my-hybrid-project-apigee-logger.json、サービス アカウントのメールアドレスは apigee-logger@my-hybrid-project.iam.gserviceaccount.com になります。
  プロジェクトを指定するには、PROJECT_ID 環境変数を定義するか --project-id フラグを使用します。create-service-account は PROJECT_ID 環境変数の値を読み取ります。環境変数がない場合は --project-id フラグを使用できます。
Cloud プロジェクト ID を指定しなければ、create-service-account は現在の gcloud プロジェクト構成のプロジェクトを使用します。
次のコマンドを使用すると、現在の gcloud プロジェクト構成を確認できます。
gcloud config list project
現在のプロジェクト ID を変更する必要がある場合は、次のコマンドを使用します。
gcloud config set project PROJECT_ID
ここで、PROJECT_ID は現在の Cloud プロジェクトの ID です。Cloud プロジェクトの作成手順については、ステップ 2: Google Cloud プロジェクトを作成するをご覧ください。
create-service-account の使用
  次の例は、一般的な Apigee ハイブリッド設定タスクに create-service-account を使用する方法を示しています。
本番環境用のサービス アカウントを作成する
ハイブリッドの本番環境では、コンポーネントごとに個別のサービス アカウントを使用することをおすすめします。次のコマンドを使用して、デフォルト名のままデフォルト ディレクトリにハイブリッド コンポーネントのすべてのサービス アカウントを作成します。
./tools/create-service-account --env prod
  これにより、次のサービス アカウントが作成されて ./tools/service-accounts ディレクトリに証明書ファイルがダウンロードされます。
| サービス アカウント | IAM ロール | メールアドレス | 証明書ファイル | 
|---|---|---|---|
| apigee-cassandra | roles/storage.objectAdmin | apigee-cassandra@PROJECT_ID.iam.gserviceaccount.com | PROJECT_ID-apigee-cassandra.json | 
| apigee-logger | roles/logging.logWriter | apigee-logger@PROJECT_ID.iam.gserviceaccount.com | PROJECT_ID-apigee-logger.json | 
| apigee-mart | roles/apigeeconnect.Agent | apigee-mart@PROJECT_ID.iam.gserviceaccount.com | PROJECT_ID-apigee-mart.json | 
| apigee-metrics | roles/monitoring.metricWriter | apigee-metrics@PROJECT_ID.iam.gserviceaccount.com | PROJECT_ID-apigee-metrics.json | 
| apigee-runtime | ロールが割り当てられていません | apigee-runtime@PROJECT_ID.iam.gserviceaccount.com | PROJECT_ID-apigee-runtime.json | 
| apigee-synchronizer | roles/apigee.synchronizerManager | apigee-synchronizer@PROJECT_ID.iam.gserviceaccount.com | PROJECT_ID-apigee-synchronizer.json | 
| apigee-udca | roles/apigee.analyticsAgent | apigee-udca@PROJECT_ID.iam.gserviceaccount.com | PROJECT_ID-apigee-udca.json | 
| apigee-watcher | roles/apigee.runtimeAgent | apigee-watcher@PROJECT_ID.iam.gserviceaccount.com | PROJECT_ID-apigee-watcher.json | 
非本番環境用の単一のサービス アカウントを作成する
試験運用環境やデモ環境などの非本番環境用に、すべてのコンポーネントに使用できる「apigee-non-prod」という名前の単一のサービス アカウントを作成できます。このサービス アカウントには、前の例でサービス アカウントを割り当てたすべての IAM ロールが含まれています。
./tools/create-service-account --env non-prod
  これにより、apigee-non-prod という名前の単一のサービス アカウントが作成され、./tools/service-accounts ディレクトリに証明書ファイルがダウンロードされます。
| サービス アカウント | IAM ロール | メールアドレス | 証明書ファイル | 
|---|---|---|---|
| apigee-non-prod | roles/apigee.analyticsAgent | apigee-non-prod@PROJECT_ID.iam.gserviceaccount.com | PROJECT_ID-apigee-non-prod.json | 
create-service-account syntax
create-service-account ツールは次の構文を使用します。
create-service-account [flags]
次の表に create-service-account のフラグを示します。
| フラグ | 値 | 説明 | 
|---|---|---|
| --dir-d | ディレクトリ名 | サービス アカウント キーファイルの出力ディレクトリを指定します。ディレクトリが存在しない場合は、 create-service-accountによって作成されます。ディレクトリがすでに存在する場合、create-service-accountは作成したキーファイルと同じ名前の、ディレクトリ内にあるファイルを上書きします。
      出力ディレクトリを指定しない場合、 | 
| --env-e | prodnon-prod | サービス アカウントを本番環境用( prod)に作成するか、非本番環境用(non-prod)に作成するかを指定します。
 
         | 
| --help-h | なし | ヘルプテキストを表示します。 | 
| --name-n | サービス アカウント名 | サービス アカウントの名前を指定します。 --nameは、--profileまたは--env non-prodのいずれかで指定された 1 つのサービス アカウントにのみ適用されます。
      この名前は、サービス アカウントの証明書ファイル名とメールアドレスにも含まれます。たとえば、 
 
         | 
| ‑‑profile-p | apigee‑cassandraapigee‑loggerapigee‑martapigee‑metricsapigee‑runtimeapigee‑synchronizerapigee‑udcaapigee‑watcher | 本番環境の場合にのみ、作成するサービス アカウントを 1 つ指定します。 
      サービス アカウントの名前は  
 | 
| ‑‑project‑id-i | プロジェクト ID | サービス アカウントを作成している Google Cloud プロジェクトのプロジェクト ID。 
         
      プロジェクト ID を指定しない場合、 | 
Apigee ハイブリッドで使用されるサービス アカウントの詳細については、サービス アカウントについてをご覧ください。
Google Cloud コンソールでサービス アカウントを作成することもできます。サービス アカウントの作成と管理に関する記事もご覧ください。