create-serice-account
の概要
create-serice-account
は、Apigee ハイブリッドで提供されるコマンドライン ツールです。Google Cloud サービス アカウントを作成して、個々の Apigee ハイブリッド コンポーネントに承認済みの API 呼び出しを許可するロールを付与し、関連するサービス アカウント キーファイルをダウンロードします。このコマンドによって生成されたサービス アカウント キーファイルは、構成オーバーライド ファイルで使用できます。
create-service-account
は、現在の Google Cloud プロジェクトまたは指定したプロジェクトに 1 つ以上のサービス アカウントを作成し、そのサービス アカウントに適切な IAM ロールを割り当て、サービス アカウントの証明書ファイルをローカルマシンのディレクトリにダウンロードします。
サービス アカウントの詳細と本番環境に推奨されるサービス アカウントの一覧については、以下をご覧ください。
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_HELM_CHARTS_HOME/apigee-operator/etc/tools/
create-service-account
ツールが実行可能であることを確認する
create-service-account
を実行できることを確認します。Apigee Helm チャートをダウンロードしたばかりの場合は、コマンドライン ツールが実行可能モードになっていない可能性があります。create-service-account
がインストールされているディレクトリに移動し、--help
で実行することによって、実行可能であることを確認します。
./create-service-account --help
出力に permission denied
と表示された場合は、ファイルを実行可能にする必要があります。たとえば、Linux、MacOS、UNIX、Windows エクスプローラでは chmod
を、Windows では icacls
コマンドを使用します。次に例を示します。
chmod +x ./create-service-account
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 |
prod non-prod |
サービス アカウントを本番環境(prod )に作成するか、非本番環境(non-prod )に作成するかを指定します。
|
--help -h |
なし | ヘルプテキストを表示します。 |
--name -n |
サービス アカウント名 | サービス アカウントの名前を指定します。--name は、--profile または --env non-prod のいずれかで指定された、1 つのサービス アカウントにのみ適用されます。
この名前は、サービス アカウントの証明書ファイル名とメールの一部にもなります。たとえば、
|
‑‑profile -p |
apigee‑cassandra apigee‑logger apigee‑mart apigee‑metrics apigee‑runtime apigee‑synchronizer apigee‑udca apigee‑watcher |
本番環境の場合でのみ、作成するサービス アカウントを 1 つ指定します。
サービス アカウントの名前は
|
‑‑project‑id -i |
project id | サービス アカウントを作成する Google Cloud プロジェクトのプロジェクト ID。
プロジェクト ID を指定しない場合、 |
Apigee ハイブリッドで使用されるサービス アカウントの詳細については、サービス アカウントについてをご覧ください。
Google Cloud コンソールでサービス アカウントを作成できます。サービス アカウントの作成と管理もご覧ください。