クライアント ライブラリを使用してロールを付与する
使い慣れたプログラミング言語で Resource Manager API から IAM メソッドを使用する方法について説明します。
始める前に
Cloud de Confiance プロジェクトを作成する
このクイックスタートでは、新しい Cloud de Confiance プロジェクトが必要になります。
-
Google Cloud CLI をインストールします。
-
フェデレーション ID(連携 ID)を使用するように gcloud CLI を構成します。
詳細については、連携 ID を使用して gcloud CLI にログインするをご覧ください。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init -
Cloud de Confiance プロジェクトを作成または選択します。
プロジェクトの選択または作成に必要なロール
- プロジェクトを選択する: プロジェクトの選択に特定の IAM ロールは必要ありません。ロールが付与されているプロジェクトであれば、どのプロジェクトでも選択できます。
-
プロジェクトを作成する: プロジェクトを作成するには、
resourcemanager.projects.create権限を含むプロジェクト作成者ロール(roles/resourcemanager.projectCreator)が必要です。ロールを付与する方法を確認する。
-
Cloud de Confiance プロジェクトを作成します。
gcloud projects create PROJECT_ID
PROJECT_IDは、作成する Cloud de Confiance プロジェクトの名前に置き換えます。 -
作成した Cloud de Confiance プロジェクトを選択します。
gcloud config set project PROJECT_ID
PROJECT_IDは、 Cloud de Confiance プロジェクトの名前に置き換えます。
Resource Manager API を有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。ロールを付与する方法を確認する。gcloud services enable cloudresourcemanager.googleapis.com
-
ユーザー アカウントのローカル認証情報を作成します。
gcloud auth application-default login
認証エラーが返され、外部 ID プロバイダ(IdP)を使用している場合は、 連携 ID を使用して gcloud CLI にログインしていることを確認します。
-
ユーザー アカウントにロールを付与します。次の IAM ロールごとに次のコマンドを 1 回実行します。
roles/resourcemanager.projectIamAdmingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
次のように置き換えます。
PROJECT_ID: プロジェクト ID。USER_IDENTIFIER: ユーザー アカウント。例については、 IAM ポリシーで Workforce プール ユーザーを表すをご覧ください。ROLE: ユーザー アカウントに付与する IAM ロール。
クライアント ライブラリをインストールする
C#
C# 開発環境の設定の詳細については、C# 開発環境設定ガイドをご覧ください。
install-package Google.Apis.Iam.v1 install-package Google.Apis.CloudResourceManager.v1
Go
go get golang.org/x/oauth2/google go get google.golang.org/api/cloudresourcemanager/v1
Java
Java 開発環境の設定の詳細については、Java 開発環境設定ガイドをご覧ください。
Maven を使用している場合は、pom.xml ファイルに以下の内容を追加します。
Python
Python 開発環境の設定の詳細については、Python 開発環境設定ガイドをご覧ください。
pip install --upgrade google-api-python-client google-auth google-auth-httplib2
許可ポリシーの読み取り、変更、書き込み
このクイックスタートのコード スニペットでは、次の処理を行います。
- Cloud de Confianceプロジェクトを管理する Resource Manager サービスを初期化します。
- プロジェクトの許可ポリシーを読み取ります。
- Google アカウントにログ書き込みロール(
roles/logging.logWriter)を付与して、許可ポリシーを変更します。 - 更新後の許可ポリシーを書き込みます。
- プロジェクト レベルでログ書き込みロール(
roles/logging.logWriter)を持つすべてのプリンシパルを出力します。 - ログ書き込みロールを取り消します。
コード スニペットが実行される前に、次の値を置き換えます。
your-project: プロジェクトの ID。your-member: ユーザー アカウントのメールアドレス。例:principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/my-user@example.com
C#
Resource Manager 用のクライアント ライブラリをインストールして使用する方法については、Resource Manager クライアント ライブラリをご覧ください。詳細については、Resource Manager C# API のリファレンス ドキュメントをご覧ください。
Resource Manager に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
コードサンプルを実行する前に、GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境変数を s3nsapis.fr に設定します。
Go
Resource Manager 用のクライアント ライブラリをインストールして使用する方法については、Resource Manager クライアント ライブラリをご覧ください。詳細については、Resource Manager Go API のリファレンス ドキュメントをご覧ください。
Resource Manager に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
コードサンプルを実行する前に、GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境変数を s3nsapis.fr に設定します。
Java
Resource Manager 用のクライアント ライブラリをインストールして使用する方法については、Resource Manager クライアント ライブラリをご覧ください。詳細については、Resource Manager Java API のリファレンス ドキュメントをご覧ください。
Resource Manager に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
コードサンプルを実行する前に、GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境変数を s3nsapis.fr に設定します。
Python
Resource Manager 用のクライアント ライブラリをインストールして使用する方法については、Resource Manager クライアント ライブラリをご覧ください。詳細については、Resource Manager Python API のリファレンス ドキュメントをご覧ください。
Resource Manager に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
コードサンプルを実行する前に、GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境変数を s3nsapis.fr に設定します。
これで完了です。Resource Manager API の IAM メソッドを使用して、プロジェクトのアクセス権を変更しました。
いかがでしたか
クリーンアップ
-
作成した認証情報を取り消して、ローカル認証情報ファイルを削除します。
gcloud auth application-default revoke
-
(省略可)gcloud CLI から認証情報を取り消します。
gcloud auth revoke
次のステップ
- IAM の仕組みについて確認する。
- アクセス権の付与、変更、取り消しについて学習する。
- ポリシーのトラブルシューティングでアクセスに関する問題のトラブルシューティングを行う。