このドキュメントでは、Dataproc に対する認証をプログラムで行う方法について説明します。Dataproc に対する認証方法は、API へのアクセスに使用するインターフェースと、コードが実行されている環境によって異なります。
Google Cloud の認証の詳細については、認証の概要をご覧くだ��い。
API アクセス
Dataproc はプログラムによるアクセスをサポートしています。次の方法で API にアクセスできます。
クライアント ライブラリ
Dataproc クライアント ライブラリでは、プログラムによる Dataproc に対する認証のための高度な言語サポートが提供されています。 Google Cloud APIs の呼び出しを認証するために、クライアント ライブラリではアプリケーションのデフォルト認証情報(ADC)がサポートされています。このライブラリは、一連の定義済みのロケーションの中から認証情報を探し、その認証情報を使用して API へのリクエストを認証します。ADC を使用すると、アプリケーション コードを変更することなく、ローカルでの開発や本番環境など、さまざまな環境のアプリケーションで認証情報を使用できるようになります。
Google Cloud CLI
gcloud CLI を使用して Dataproc にアクセスする場合は、gcloud CLI コマンドで使用される認証情報を提供する Google アカウントで gcloud CLI にログインします。
組織のセキュリティ ポリシーによってユーザー アカウントに必要な権限が与えられない場合は、サービス アカウントの権限借用を使用できます。
詳細については、gcloud CLI を使用して認証するをご覧ください。Dataproc で gcloud CLI を使用する詳しい方法については、gcloud CLI のリファレンス ページをご覧ください。
REST
Dataproc API への認証には、gcloud CLI 認証情報またはアプリケーションのデフォルト認証情報を使用します。REST リクエストの認証の詳細については、REST を使用して認証するをご覧ください。認証情報の種類については、gcloud CLI の認証情報と ADC の認証情報をご覧ください。
Dataproc の認証を設定する
認証の設定方法は、コードが実行されている環境によって異なります。
認証の設定には、次のオプションが最も一般的に使用されます。認証のその他のオプションと詳細については、Google での認証をご覧ください。
ローカル開発環境の場合
ローカル開発環境の認証情報は、次の方法で設定できます。
クライアント ライブラリまたはサードパーティ ツール
ローカル環境でアプリケーションのデフォルト認証情報(ADC)���設定します。
-
Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。
gcloud init
-
Google アカウントのローカル認証情報を作成します。
gcloud auth application-default login
ログイン画面が表示されます。ログインすると、ADC で使用されるローカル認証情報ファイルに認証情報が保存されます。
ローカル環境での ADC 操作の詳細については、ローカル開発環境をご覧ください。
コマンドラインからの REST リクエスト
コマンドラインから REST リクエストを行う場合は、リクエストを送信するコマンドの一部として gcloud auth print-access-token
を含めることで、gcloud CLI 認証情報を使用できます。
次の例では、指定したプロジェクトのサービス アカウントを一覧表示します。どの REST リクエストに対しても、同じパターンを使用できます。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: Google Cloud プロジェクト ID。
リクエストを送信するには、次のいずれかのオプションを展開します。
REST と gRPC を使用した認証の詳細については、REST の使用に対する認証をご覧ください。ローカル ADC 認証情報と gcloud CLI 認証情報の違いについては、gcloud CLI 認証情報と ADC 認証情報をご覧ください。
Google Cloud
Google Cloud で実行されているワークロードを認証するには、コードが実行されているコンピューティング リソースに関連付けられているサービス アカウントの認証情報を使用����す。���������、サービス アカウントを Compute Engine 仮想マシン(VM)インスタンス、Cloud Run サービス、Dataflow ジョブに関連付けることができます。このアプローチは、Google Cloud コンピューティング リソースで実行されているコードの推奨認証方法です。
ほとんどのサービスでは、コードを実行するリソースの作成時にサービス アカウントを関連付ける必要があります。サービス アカウントを後から追加または置換することはできません。Compute Engine は例外です。そのため、サービス アカウントをいつでも VM インスタンスに関連付けることができます。
gcloud CLI を使用してサービス アカウントを作成し、リソースに関連付けます。
-
Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。
gcloud init
-
Set up authentication:
-
Create the service account:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Replace
SERVICE_ACCOUNT_NAME
with a name for the service account. -
To provide access to your project and your resources, grant a role to the service account:
gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=ROLE
Replace the following:
SERVICE_ACCOUNT_NAME
: the name of the service accountPROJECT_ID
: the project ID where you created the service accountROLE
: the role to grant
- To grant another role to the service account, run the command as you did in the previous step.
-
Grant the required role to the principal that will attach the service account to other resources.
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser
Replace the following:
SERVICE_ACCOUNT_NAME
: the name of the service accountPROJECT_ID
: the project ID where you created the service accountUSER_EMAIL
: the email address for a Google Account
-
-
コードを実行するリソースを作成し、そのリソースにサービス アカウントを関連付けます。たとえば、Compute Engine を使用する場合は次のようになります。
Create a Compute Engine instance. Configure the instance as follows:-
INSTANCE_NAME
を必要なインスタンス名に置き換えます。 -
インスタンスを作成するゾーンに
--zone
フラグを設定します。 -
--service-account
フラグに、作成したサービス アカウントのメールアドレスを設定します。
gcloud compute instances create INSTANCE_NAME --zone=ZONE --service-account=SERVICE_ACCOUNT_EMAIL
-
Google API に対する認証について詳しくは、Google での認証をご覧ください。
オンプレミスまたは別のクラウド プロバイダ
Google Cloud の外部から認証を設定する際の推奨方法は、Workload Identity 連携の使用です。詳細については、認証ドキュメントのオンプレミスまたは他のクラウド プロバイダをご覧ください。
次のステップ
- Dataproc サービス アカウントについて理解する。
- カスタム VM サービス アカウントを使用してクラスタを作成する方法を確認する。
- Google Cloud の認証方法を確認する。
- 認証のユースケースを確認する。