このページでは、Identity and Access Management(IAM)カスタムロールを作成および管理する方法について説明します。ロールの管理には、ロールの変更、無効化、一覧表示、削除、削除の取り消しが含まれます。
始める前に
- Enable the IAM API. - Roles required to enable APIs - To enable APIs, you need the Service Usage Admin IAM role ( - roles/serviceusage.serviceUsageAdmin), which contains the- serviceusage.services.enablepermission. Learn how to grant roles.
- 認証を設定する。 - Select the tab for how you plan to use the samples on this page: - Console- When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication. - gcloud- In the Google Cloud console, activate Cloud Shell. - At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize. - C#- ローカル開発環境でこのページの .NET サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。 - Google Cloud CLI をインストールします。 - 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。 - If you're using a local shell, then create local authentication credentials for your user account: - gcloud auth application-default login - You don't need to do this if you're using Cloud Shell. - If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity. - 詳細については、 Google Cloud 認証ドキュメントのローカル開発環境の ADC の設定をご覧ください。 - C++- ローカル開発環境でこのページの C++ サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。 - Google Cloud CLI をインストールします。 - 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。 - If you're using a local shell, then create local authentication credentials for your user account: - gcloud auth application-default login - You don't need to do this if you're using Cloud Shell. - If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity. - 詳細については、 Google Cloud 認証ドキュメントのローカル開発環境の ADC の設定をご覧ください。 - Go- ローカル開発環境でこのページの Go サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。 - Google Cloud CLI をインストールします。 - 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。 - If you're using a local shell, then create local authentication credentials for your user account: - gcloud auth application-default login - You don't need to do this if you're using Cloud Shell. - If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity. - 詳細については、 Google Cloud 認証ドキュメントのローカル開発環境の ADC の設定をご覧ください。 - Java- ローカル開発環境でこのページの Java サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。 - Google Cloud CLI をインストールします。 - 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。 - If you're using a local shell, then create local authentication credentials for your user account: - gcloud auth application-default login - You don't need to do this if you're using Cloud Shell. - If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity. - 詳細については、 Google Cloud 認証ドキュメントのローカル開発環境の ADC の設定をご覧ください。 - Python- ローカル開発環境でこのページの Python サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。 - Google Cloud CLI をインストールします。 - 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。 - If you're using a local shell, then create local authentication credentials for your user account: - gcloud auth application-default login - You don't need to do this if you're using Cloud Shell. - If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity. - 詳細については、 Google Cloud 認証ドキュメントのローカル開発環境の ADC の設定をご覧ください。 - REST- このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。 - Google Cloud CLI をインストールします。 - 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。 - 詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。 - Google Cloud リソース階層について理解する。 - IAM のカスタムロールについてを読む。 - 必要なロール- カスタムロールを作成して管理するために必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。 - 
            プロジェクトのロールを管理する: ロールを管理するプロジェクトに対するロール管理者(roles/iam.roleAdmin)
- 組織のロールを管理する: ロールを管理する組織に対する組織のロールの管理者(roles/iam.organizationRoleAdmin)
 - ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。 - 必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。 - プロジェクト、フォルダ、組織で利用可能な権限を表示する- カスタムロールは、組織全体、または組織内の特定のプロジェクトに対して作成できます。カスタムロールで使用できる権限は、ロールを作成する場所によって異なります。たとえば、組織レベルでのみ権限を使用できる場合、その権限をプロジェクト レベルのカスタムロールに含めることはできません。 - 組織レベルとプロジェクト レベルのカスタムロールで使用できる権限を確認するには、gcloud CLI または Identity and Access Management API を使用して、具体的な組織やプロジェクトで使用可能な権限のリストを出力します。たとえば、プロジェクトで作成したカスタムロールで使用可能なすべての権限を取得できます。 - カスタムロールでサポートされている場合でも、カスタムロールで一部の権限が表示されない場合や、使用できない場合があります。たとえば、サービスで API を有効にしていない場合は、カスタムロールで権限を使用できないことがあります。 - カスタムロールに追加できる権限の詳細については、サポートされている権限をご覧ください。 - gcloud- 
  
   
   
  
 
   
 
 
 
  
    
    In the Google Cloud console, activate Cloud Shell. At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize. 
- 
    gcloud iam list-testable-permissionsコマンドを使用して、具体的なプロジェクトや組織内のカスタムロールで使用可能な権限のリストを取得します。レスポンスには、そのプロジェクトや組織のカスタムロールで使用できる権限がリスト出力されます。プロジェクトや組織のカスタムロールで使用可能な権限をリスト出力するには、次のコマンドを実行します。 gcloud iam list-testable-permissions FULL_RESOURCE_NAME \ --filter="customRolesSupportLevel!=NOT_SUPPORTED"FULL_RESOURCE_NAMEは次のいずれかの値に置き換えます。- 
        プロジェクト: //cloudresourcemanager.googleapis.com/projects/PROJECT_ID(例://cloudresourcemanager.googleapis.com/projects/my-project)
- 
        組織: //cloudresourcemanager.googleapis.com/organizations/NUMERIC_ID(例://cloudresourcemanager.googleapis.com/organizations/123456789012)
 結果には、各権限がカスタムロールでサポートされているかどうかが示されます。 customRolesSupportLevelフィールドがない権限は、完全にサポートされている権限です。list-testable-permissionsコマンドから非常に多くの結果が返されることがあります。出力の一部を抜粋した次の例では、各結果の形式を示します。--- name: appengine.applications.create stage: GA --- customRolesSupportLevel: TESTING name: appengine.applications.disable stage: GA --- name: appengine.applications.get stage: GA --- name: appengine.applications.update stage: GA --- name: appengine.instances.delete stage: GA --- name: appengine.instances.get stage: GA --- 
- 
        
- FULL_RESOURCE_NAME: サービス名とリソースへのパスで構成される URI。例については、完全なリソース名をご覧ください。
- PAGE_SIZE: 省略可。レスポンスに含める権限の数。デフォルト値は 100、最大値は 1,000 です。権限の数がページサイズよりも大きい場合、レスポンスには、次の結果ページを取得するために使用するページ設定トークンが含まれます。
- NEXT_PAGE_TOKEN: 省略可。以前のレスポンスでこのメソッドから返されたページ設定トークン。指定すると、前のレスポンスが終了した時点から、テスト可能な権限のリストが開始します。
 - C++- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM C++ API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - C#- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM C# API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - Go- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM Go API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - Java- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM Java API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - Python- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM Python API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - REST- permissions.queryTestablePermissionsメソッドを使用すると、組織やプロジェクトで使用可能な権限のリストを取得できます。- リクエストのデータを使用する前に、次のように置き換えます。 - HTTP メソッドと URL: - POST https://iam.googleapis.com/v1/permissions:queryTestablePermissions - リクエストの本文(JSON): - { "fullResourceName": "FULL_RESOURCE_NAME" "pageSize": PAGE_SIZE, "pageToken": "NEXT_PAGE_TOKEN" }- リクエストを送信するには、次のいずれかのオプションを展開します。 - レスポンスには、権限のリストが含まれます。 - { "permissions": [ { "name": "iam.serviceAccountKeys.create", "stage": "GA" }, { "name": "iam.serviceAccountKeys.delete", "stage": "GA" }, { "name": "iam.serviceAccountKeys.get", "stage": "GA" } ], "nextPageToken": "CgoHBajEfjUDQyABEPaIv5vIiMDTVhgDIhtpYW0uc2VydmljZUFjY291bnRLZXlzLmxpc3Q" }- ロール メタデータを取得する- カスタムロールを作成する前に、事前定義ロールとカスタムロールの両方のメタデータを取得する必要がある場合があります。ロール メタデータには、そのロールの ID と権限が含まれます。メタデータを確認するには、Google Cloud コンソールまたは IAM API を使用します。 - ロール メタデータを表示するには、次のいずれかの方法で行います。 - コンソール- Google Cloud コンソールで、[ロール] ページに移動します。 
- ページの上部にあるプルダウン リストから組織またはプロジェクトを選択します。 
- 1 つ以上のロールのチェックボックスを選択して、ロールの権限を表示します。ロールに含まれている権限があれば、右側のパネルに表示されます。 
 - タイプ列のアイコンは、カスタムロールか、事前定義ロールかを示しています。 - 特定の権限を含むロールをすべて検索するには、[ロール] リストの上部にある [フィルタ] ボックスに権限名を入力します。 - gcloud- 
  
   
   
  
 
 
 
  
    
    In the Google Cloud console, activate Cloud Shell. At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize. 
- 
    gcloud iam roles describeコマンドを使用して、事前定義ロールとカスタムロールのメタデータを表示します。事前定義ロールのメタデータを表示するには、次のコマンドを実行します。 gcloud iam roles describe ROLE_ID ROLE_IDはロールの ID です。事前定義ロールの ID にはrole接頭辞が含まれます(roles/iam.roleViewerなど)。次の例に、 describeが事前定義ロールroles/iam.roleViewerで実行された場合の出力の例を示します。gcloud iam roles describe roles/iam.roleViewerdescription: Read access to all custom roles in the project. etag: AA== includedPermissions: - iam.roles.get - iam.roles.list - resourcemanager.projects.get - resourcemanager.projects.getIamPolicy name: roles/iam.roleViewer stage: GA title: Role Viewer カスタムロールのメタデータを表示するには、次のいずれかのコマンドを実行します。 - 
        組織レベルで作成されたカスタムロールのメタデータを表示するには、次のコマンドを実行します。 gcloud iam roles describe --organization=ORGANIZATION_ID ROLE_ID 
- 
        プロジェクト レベルで作成されたカスタムロールのメタデータを表示するには、次のコマンドを実行します。 gcloud iam roles describe --project=PROJECT_ID ROLE_ID 
 各プレースホルダ値についての説明は次のとおりです。 - 
        ORGANIZATION_IDは組織の数値 ID です(123456789012など)。
- 
        PROJECT_IDはプロジェクトの名前です(my-projectなど)。
- 
        ROLE_IDはロールの ID です。projects/、organizations/、roles/などの接頭辞は含まれません。例:myCompanyAdmin。
 詳細については、 gcloud iam roles describeのリファレンス ドキュメントをご覧ください。
- 
        
- ROLE_NAME:- organizations/、- projects/、- roles/のいずれかの接頭辞を含む完全なロール名。たとえば、- organizations/123456789012/roles/myCompanyAdmin。
 - C++- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM C++ API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - C#- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM C# API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - Go- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM Go API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - Java- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM Java API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - Python- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM Python API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - REST- roles.getメソッドはロールの定義を取得します。- リクエストのデータを使用する前に、次のように置き換えます。 - HTTP メソッドと URL: - GET https://iam.googleapis.com/v1/ROLE_NAME - リクエストを送信するには、次のいずれかのオプションを展開します。 - レスポンスにはロールの定義が含まれます。 - { "name": "projects/my-project/roles/customRole", "title": "My Custom Role", "description": "My custom role description.", "includedPermissions": [ "storage.buckets.get", "storage.buckets.list" ], "etag": "BwWiPg2fmDE=" }- カスタムロールを作成する- カスタムロールは、プロジェクト レベルまたは組織レベルで作成できます。 - 組織レベルのカスタムロールには、カスタムロールでサポートされる任意の IAM 権限を含めることができます。プロジェクト レベルのカスタムロールには、サポートされている任意の権限を含めることができます。ただし、 - resourcemanager.organizations.getなど、組織レベルまたはフォルダレベルのみで使用できる権限は除きます。これらの権限をプロジェクト レベルのカスタムロールに追加しようとすると、次のようなエラー メッセージが表示されます。- Console- 「プロジェクト レベルのカスタムロールに適用できません」という警告メッセージが表示されます。対象の権限リストから権限が自動的に削除され、ロールの作成に進むことができます。 - gcloud- INVALID_ARGUMENT: Permission PERMISSION is not validというエラー メッセージが返されます。ロールの定義から権限を削除して操作をやり直すまで、カスタムロールは作成されません。- REST API- エラー メッセージ - Permission PERMISSION is not validが返され、HTTP 400 エラーコードとステータス- INVALID_ARGUMENTが返されます。ロールの定義から権限を削除して操作をやり直すまで、カスタムロールは作成されません。- カスタムロールには、最大 3,000 個の権限を含めることができます。また、カスタムロールのタイトル、説明、権限名の最大合計サイズは 64 KB です。より大きなカスタムロールを作成する必要がある場合は、権限を複数のカスタムロールに分割できます。 - Custom Admin (1 of 2)や- Custom Admin (2 of 2)など、カスタムロール間の関係を示すロールタイトルを選択します。- カスタムロールにはリリース ステージを設定できます。リリース ステージのほとんどは情報提供を目的としています。これにより、各ロールを広く使用できるかどうかをトラッキングできます。さらに、 - DISABLEDリリース ステージでは、カスタムロールを無効にすることができます。リリース ステージの詳細については、テストとデプロイをご覧ください。- Console- 一部の事前定義ロールには、サポートが終了した権限や、カスタムロールでは許可されない権限が含まれています。そのような事前定義ロールをに基づいてカスタムロールを作成する場合、サポートが終了した権限、制限されている権限はカスタムロールから省略されます。 - 最初から新しいカスタムロールを作成するには: - Google Cloud コンソールで、[ロール] ページに移動します。 
- ページの上部にあるプルダウン リストを使用して、ロールを作成する組織またはプロジェクトを選択します。 
- [ロールを作成] をクリックします。 
- ロールのタイトル、説明、ID、ロールのリリース段階を入力します。ロールの作成後にロール ID を変更することはできません。 
- [権限を追加] をクリックします。 
- ロールに含める権限を選択し、[権限を追加] をクリックします。[すべてのサービス] と [すべての種類] プルダウン リストを使用して、サービスと種類別に権限をフィルタリングして選択します。 
 - 既存の事前定義ロールに基づいてカスタムロールを作成するには: - Google Cloud コンソールで、[ロール] ページに移動します。
- ロールを作成する組織またはプロジェクトを選択します。
- 新しいカスタムロールのベースにするロールを選択します。
- [選択内容からロールを作成] をクリックします。
- ロールのタイトル、説明、ID、ロールのリリース段階を入力します。ロールの作成後にロール ID を変更することはできません。
- ロールから除外する権限のチェックボックスをオフにします。
- [権限を追加] をクリックして権限を追加します。
- [作成] をクリックします。
 - gcloud- 
  
   
   
  
 
 
 
  
    
    In the Google Cloud console, activate Cloud Shell. At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize. 
- 
    gcloud iam roles createを使用して、新しいカスタムロールを作成します。このコマンドは次の 2 つの方法で使用できます。- 
        ロール定義が含まれる YAML ファイルを使用する 
- 
        フラグを使用してロール定義を指定する 
 カスタムロールを作成するには、 --organization=ORGANIZATION_IDまたは--project=PROJECT_IDフラグを指定して、ロールを組織レベルとプロジェクト レベルのどちらで適用するかを指定する必要があります。以下の各例では、プロジェクト レベルでカスタムロールを作成します。カスタムロールには、カスタムロールでサポートされる権限のみを含めることができます。カスタムロールに他の権限が含まれている場合、コマンドは失敗します。 YAML ファイルを使用してカスタムロールを作成するには: カスタムロール定義が含まれる YAML ファイルを作成します。このファイルは次のような構造にする必要があります。 title: ROLE_TITLE description: ROLE_DESCRIPTION stage: LAUNCH_STAGE includedPermissions: - PERMISSION_1 - PERMISSION_2 各プレースホルダ値についての説明は次のとおりです。 - 
        ROLE_TITLEは、ロールのわかりやすいタイトルです("My Company Admin"など)。
- 
        ROLE_DESCRIPTIONは、ロールに関する簡単な説明です("My custom role description"など)。
- 
        LAUNCH_STAGEは、リリースのライフサイクルにおけるロールの段階を示します(ALPHA、BETA、GAなど)。
- 
        PERMISSION_1とPERMISSION_2は、iam.roles.getなどのカスタムロールに含める権限です。権限名にワイルドカード文字(*)は使用できません。
 YAML ファイルを保存し、次のいずれかのコマンドを実行します。 - 
        組織レベルでカスタムロールを作成するには、次のコマンドを実行します。 gcloud iam roles create ROLE_ID--organization=ORGANIZATION_ID \ --file=YAML_FILE_PATH
- 
        プロジェクト レベルでカスタムロールを作成するには、次のコマンドを実行します。 gcloud iam roles create ROLE_ID --project=PROJECT_ID \ --file=YAML_FILE_PATH
 各プレースホルダ値についての説明は次のとおりです。 - 
        ROLE_IDはロールの名前です(myCompanyAdminなど)。
- 
        ORGANIZATION_IDは組織の数値 ID です(123456789012など)。
- 
        PROJECT_IDはプロジェクトの名前です(my-projectなど)。
- 
      YAML_FILE_PATHは、カスタムロールの定義が含まれる YAML ファイルの場所へのパスです。
 例 次の YAML ファイルの例では、ロール定義を作成する方法を示します。 title: "My Company Admin" description: "My custom role description." stage: "ALPHA" includedPermissions: - iam.roles.get - iam.roles.list 次の例は、YAML ファイルを使用して組織レベルでロールを作成する方法を示しています。 gcloud iam roles create myCompanyAdmin --organization=123456789012 \ --file=my-role-definition.yamlロールが正常に作成された場合、コマンドの出力は次のようになります。 Created role [myCompanyAdmin]. description: My custom role description. etag: BwVkBX0sQD0= includedPermissions: - iam.roles.get - iam.roles.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin 次の例は、YAML ファイルを使用してプロジェクト レベルでロールを作成する方法を示しています。 gcloud iam roles create myCompanyAdmin --project=my-project \ --file=my-role-definition.yamlロールが正常に作成された場合、コマンドの出力は次のようになります。 Created role [myCompanyAdmin]. description: My custom role description. etag: BwVkBX0sQD0= includedPermissions: - iam.roles.get - iam.roles.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin フラグを使用してカスタムロールを作成するには: 次のいずれかのコマンドを実行します。 - 
        組織レベルでカスタムロールを作成するには、次のコマンドを実行します。 gcloud iam roles create ROLE_ID--organization=ORGANIZATION_ID \ --title=ROLE_TITLE --description=ROLE_DESCRIPTION \ --permissions="PERMISSIONS_LIST" --stage=LAUNCH_STAGE
- 
        プロジェクト レベルでカスタムロールを作成するには、次のコマンドを実行します。 gcloud iam roles create ROLE_ID --project=PROJECT_ID \ --title=ROLE_TITLE --description=ROLE_DESCRIPTION \ --permissions="PERMISSIONS_LIST" --stage=LAUNCH_STAGE
 各プレースホルダ値についての説明は次のとおりです。 - 
        ROLE_IDはロールの名前です(myCompanyAdminなど)。
- 
        ORGANIZATION_IDは組織の数値 ID です(123456789012など)。
- 
        PROJECT_IDはプロジェクトの名前です(my-projectなど)。
- 
        ROLE_TITLEは、ロールのわかりやすいタイトルです("My Company Admin"など)。
- 
        ROLE_DESCRIPTIONは、ロールに関する簡単な説明です("My custom role description."など)。
- 
        PERMISSIONS_LISTには、カスタムロールに含める権限のカンマ区切りのリストが含まれます(たとえば、iam.roles.get,iam.roles.list)。権限名にワイルドカード文字(*)は使用できません。
- 
        LAUNCH_STAGEは、リリースのライフサイクルにおけるロールの段階を示します(ALPHA、BETA、GAなど)。
 例 次の例は、フラグを使用して組織レベルでロールを作成する方法を示しています。 gcloud iam roles create myCompanyAdmin --organization=123456789012 \ --title="My Company Admin" --description="My custom role description." \ --permissions="iam.roles.get,iam.roles.list" --stage=ALPHAロールが正常に作成された場合、コマンドの出力は次のようになります。 Created role [myCompanyAdmin]. description: My custom role description. etag: BwVkBX0sQD0= includedPermissions: - iam.roles.get - iam.roles.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin 次の例は、フラグを使用してプロジェクト レベルでロールを作成する方法を示しています。 gcloud iam roles create myCompanyAdmin --project=my-project \ --title="My Company Admin" --description="My custom role description." \ --permissions="iam.roles.get,iam.roles.list" --stage=ALPHAロールが正常に作成された場合、コマンドの出力は次のようになります。 Created role [myCompanyAdmin]. description: My custom role description. etag: BwVkBX0sQD0= includedPermissions: - iam.roles.get - iam.roles.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin 
- 
        
- RESOURCE_TYPE: カスタムロールを管理するリソースタイプ。値- projectsまたは- organizationsを使用します。
- RESOURCE_ID: カスタムロールを管理するプロジェクト ID または組織 ID。プロジェクト ID は英数字からなる文字列です(例:- my-project)。組織 ID は数値で指定します(例:- 123456789012)。
- ROLE_ID: ロールの名前(- myCompanyAdminなど)。
- ROLE_TITLE: 人が読める形式のロールタイトル。例:- My Company Admin
- ROLE_DESCRIPTION: ロールの説明。例:- "The company admin role allows company admins to access important resources"
- 
    PERMISSION_1とPERMISSION_2: ロールに含める権限。例:storage.objects.update。権限名にワイルドカード文字(*)は使用できません。カスタムロールには、カスタムロールでサポートされる権限のみを含めることができます。カスタムロールに他のロールが含まれている場合、リクエストは失敗します。 
- LAUNCH_STAGE: ロールの現在のリリース ステージ。このフィールドの値は、- EAP、- ALPHA、- BETA、- GA、- DEPRECATED、- DISABLEDのいずれかになります。
 - C++- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM C++ API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - C#- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM C# API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - Go- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM Go API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - Java- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM Java API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - Python- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM Python API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - REST- roles.createメソッドを使用すると、プロジェクトまたは組織にカスタムロールを作成できます。- リクエストのデータを使用する前に、次のように置き換えます。 - HTTP メソッドと URL: - POST https://iam.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/roles - リクエストの本文(JSON): - { "roleId": "ROLE_ID", "role": { "title": "ROLE_TITLE", "description": "ROLE_DESCRIPTION", "includedPermissions": [ "PERMISSION_1", "PERMISSION_2" ], "stage": "LAUNCH_STAGE" } }- リクエストを送信するには、次のいずれかのオプションを展開します。 - 作成したロールがレスポンスに含まれます。 - { "name": "projects/myProject/roles/myCompanyAdmin", "title": "My Company Admin", "description": "My custom role description.", "includedPermissions": [ "iam.roles.get", "iam.roles.list" ], "etag": "BwWox/JbaZw=" }- 既存のカスタムロールを編集する- カスタムロールなどのリソースのメタデータの更新では、一般に「読み取り - 変更 - 書き込み」のパターンが使用されます。このパターンでは、ロールの現在の状態を読み取り、データをローカルに更新した後、変更したデータを送信して書き込みます。 - 読み取り - 変更 - 書き込みパターンでは、2 つ以上の独立したプロセスが一連の操作を同時に試行する場合に競合が発生することがあります。たとえば、プロジェクトの 2 人のオーナーが、1 つのロールに対して相反する変更を同時に行うと、一部の変更が失敗する可能性があります。IAM では、カスタムロールの - etagプロパティを使用してこの問題を解決します。このプロパティは、カスタムロールが最後のリクエスト以降に変更されているかどうかを確認するために使用されます。etag 値を使用して IAM にリクエストを送信すると、IAM はリクエスト内の etag 値をカスタムロールに関連付けられた既存の etag 値と比較します。etag 値が一致した場合にのみ変更を書き込みます。- ロールを更新する場合は、 - roles.get()でロールを取得して更新します。その後、- roles.patch()を使用して、更新されたロールを書き込みます。ロールを設定するときに etag 値を使用するのは、- roles.get()内の対応するロールに etag 値が含まれている場合のみです。- コンソール- Google Cloud コンソールで、[ロール] ページに移動します。 
- ページの上部にあるプルダウン リストを使用して、編集するロールを含むプロジェクトまたは組織を選択します。 
- カスタムロールをクリックします。 
- [ロールを編集] をクリックします。 
- ロールのメタデータを更新するには、ロールのタイトル、説明、またはロールのリリース ステージを編集します。 
- ロールの権限を更新するには、次の手順を行います。 - ロールに新しい権限を追加するには、[権限を追加] をクリックします。
- ロールから権限を削除する権限のチェックボックスをオフにします。
 
- [更新] をクリックして、編集したロールを保存します。 
 - gcloud- 
  
   
   
  
 
 
 
  
    
    In the Google Cloud console, activate Cloud Shell. At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize. 
- 
    gcloud iam roles updateを使用して、カスタムロールを更新します。このコマンドは次の 2 つの方法で使用できます。- 
        更新されたロール定義が含まれる YAML ファイルを使用する 
- 
        フラグを使用して、更新されたロール定義を指定する 
 カスタムロールを更新する場合は、 --organization=ORGANIZATION_IDフラグまたは--project=PROJECT_IDフラグを使用して、組織レベルとプロジェクト レベルのどちらでロールを適用するのかを指定する必要があります。以下の各例では、プロジェクト レベルでカスタムロールを作成します。YAML ファイルを使用してカスタムロールを更新するには: 次のいずれかのコマンドを実行して、ロールの現在の定義を取得します。 - 
        組織レベルのカスタムロールのロール定義を取得するには、次のコマンドを実行します。 gcloud iam roles describe ROLE_ID --organization=ORGANIZATION_ID 
- 
        プロジェクト レベルのカスタムロールのロール定義を取得するには、次のコマンドを実行します。 gcloud iam roles describe ROLE_ID --project=PROJECT_ID 
 各プレースホルダ値についての説明は次のとおりです。 - 
        ROLE_IDは、更新するロールの名前です(myCompanyAdminなど)。
- 
        ORGANIZATION_IDは組織の数値 ID です(123456789012など)。
- 
        PROJECT_IDはプロジェクトの名前です(my-projectなど)。
 describeコマンドはロール定義を返し、その定義にはロールの現在のバージョンを一意に特定するetag値が含まれます。ロールの同時変更が上書きされないように、更新されたロール定義にetag値を指定する必要があります。describeコマンドは、次の出力を返します。description: ROLE_DESCRIPTION etag: ETAG includedPermissions: - PERMISSION_1 - PERMISSION_2 name: ROLE_NAME stage: LAUNCH_STAGE title: ROLE_TITLE 各プレースホルダ値についての説明は次のとおりです。 - 
        ROLE_DESCRIPTIONは、ロールに関する簡単な説明です("My custom role description"など)。
- 
        ETAGは、ロールの現在のバージョンの固有識別子です(BwVkBkbfr70=など)。
- 
        PERMISSION_1とPERMISSION_2は、iam.roles.getなどのカスタムロールに含める権限です。権限名にワイルドカード文字(*)は使用できません。
- 
        ROLE_NAMEは、organizations/、projects/、roles/のいずれかの接頭辞を含む完全なロール名です。例:organizations/123456789012/roles/myCompanyAdmin.
- 
        LAUNCH_STAGEは、リリースのライフサイクルにおけるロールの段階を示します(ALPHA、BETA、GAなど)。
- 
        ROLE_TITLEは、ロールのわかりやすいタイトルです("My Company Admin"など)。
 ロールを更新するには、出力されたロール定義を YAML ファイルに含めるか、または元の YAML ファイルを出力された etag値で更新します。次の YAML ファイルの例では、プロジェクト レベルのロールの describeコマンドからの出力が含まれ、2 つの Cloud Storage 権限が追加されています。description: My custom role description. etag: BwVkBkbfr70= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin YAML ファイルを保存し、次のいずれかのコマンドを実行します。 - 
        組織レベルのロールを更新するには、次のコマンドを実行します。 gcloud iam roles update ROLE_ID--organization=ORGANIZATION_ID \ --file=YAML_FILE_PATH
- 
        プロジェクト レベルのロールを更新するには、次のコマンドを実行します。 gcloud iam roles update ROLE_ID --project=PROJECT_ID \ --file=YAML_FILE_PATH
 各プレースホルダ値についての説明は次のとおりです。 - 
        ROLE_IDは、更新するロールの名前です(myCompanyAdminなど)。
- 
        ORGANIZATION_IDは組織の数値 ID です(123456789012など)。
- 
        PROJECT_IDはプロジェクトの名前です(my-project-idなど)。
- 
        YAML_FILE_PATHは、更新されたカスタムロール定義が含まれる YAML ファイルの場所のパスです。
 例 次の例は、YAML ファイルを使用して組織レベルのロールを更新する方法を示しています。 gcloud iam roles update ROLE_ID --organization=ORGANIZATION_ID \ --file=YAML_FILE_PATH- 
        プロジェクト レベルのロールを更新するには、次のコマンドを実行します。 gcloud iam roles update ROLE_ID --project=PROJECT_ID \ --file=YAML_FILE_PATH
 各プレースホルダ値についての説明は次のとおりです。 - 
        ROLE_IDは、更新するロールの名前です(myCompanyAdminなど)。
- 
        ORGANIZATION_IDは組織の数値 ID です(123456789012など)。
- 
        PROJECT_IDはプロジェクトの名前です(my-projectなど)。
- 
        YAML_FILE_PATHは、更新されたカスタムロールの定義が含まれる YAML ファイルの場所のパスです。
 例 次の例は、YAML ファイルを使用して組織レベルのロールを更新する方法を示しています。 gcloud iam roles update myCompanyAdmin --organization=123456789012 \ --file=my-role-definition.yamlロールが正常に更新された場合、コマンドの出力は次のようになります。 description: My custom role description. etag: BwVkBwDN0lg= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin 次の例は、YAML ファイルを使用してプロジェクト レベルのロールを更新する方法を示しています。 gcloud iam roles update myCompanyAdmin --project=my-project \ --file=my-role-definition.yamlロールが正常に更新された場合、コマンドの出力は次のようになります。 description: My custom role description. etag: BwVkBwDN0lg= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin フラグを使用してカスタムロールを更新するには: ロールの定義の各部分は、対応するフラグを使用して更新できます。使用可能なフラグの一覧については、 gcloud iam roles updateトピックをご覧ください。次のフラグを使用して、権限を追加または削除できます。 - 
        --add-permissions=PERMISSIONS: 権限をロールに追加します。複数の権限を追加する場合は権限をカンマで区切ります。権限名にワイルドカード文字(*)は使用できません。
- 
        --remove-permissions=PERMISSIONS: 権限(複数の場合はカンマで区切る)をロールから削除します。権限名にワイルドカード文字(*)は使用できません。
 または、 --permissions=PERMISSIONSフラグを使用して新しい権限を指定することもできます。権限のカンマ区切りのリストを指定すると、既存の権限のリストが置き換えられます。ロール定義の他の部分を更新するには、次のいずれかのコマンドを実行します。 - 
        組織レベルのロールを更新するには、次のコマンドを実行します。 gcloud iam roles update ROLE_ID--organization=ORGANIZATION_ID \ --title=ROLE_TITLE --description=ROLE_DESCRIPTION \ --stage=LAUNCH_STAGE
- 
        プロジェクト レベルのロールを更新するには、次のコマンドを実行します。 gcloud iam roles update ROLE_ID --project=PROJECT_ID \ --title=ROLE_TITLE --description=ROLE_DESCRIPTION \ --stage=LAUNCH_STAGE
 各プレースホルダ値についての説明は次のとおりです。 - 
        ROLE_IDはロールの名前です(myCompanyAdminなど)。
- 
        ORGANIZATION_IDは組織の数値 ID です(123456789012など)。
- 
        PROJECT_IDはプロジェクトの名前です(my-projectなど)。
- 
        ROLE_TITLEは、ロールのわかりやすいタイトルです("My Company Admin"など)。
- 
        ROLE_DESCRIPTIONは、ロールに関する簡単な説明です("My custom role description."など)。
- 
        LAUNCH_STAGEは、リリースのライフサイクルにおけるロールの段階を示します(ALPHA、BETA、GAなど)。
 例 次の例は、フラグを使用して組織レベルのロールに権限を追加する方法を示しています。 gcloud iam roles update myCompanyAdmin --organization=123456789012 \ --add-permissions="storage.buckets.get,storage.buckets.list"ロールが正常に更新された場合、コマンドの出力は次のようになります。 description: My custom role description. etag: BwVkBwDN0lg= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin 次の例は、フラグを使用してプロジェクト レベルのロールに権限を追加する方法を示しています。 gcloud iam roles update myCompanyAdmin --project=my-project \ --add-permissions="storage.buckets.get,storage.buckets.list"ロールが正常に更新された場合、コマンドの出力は次のようになります。 description: My custom role description. etag: BwVkBwDN0lg= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin 
- 
        
- RESOURCE_TYPE: カスタムロールを管理するリソースタイプ。値- projectsまたは- organizationsを使用します。
- RESOURCE_ID: カスタムロールを管理するプロジェクト ID または組織 ID。プロジェクト ID は英数字からなる文字列です(例:- my-project)。組織 ID は数値で指定します(例:- 123456789012)。
- ROLE_NAME:- organizations/、- projects/、- roles/のいずれかの接頭辞を含む完全なロール名。たとえば、- organizations/123456789012/roles/myCompanyAdmin。
- ETAG: ロールのバージョンの識別子。他のロールの変更を上書きしないようにするには、このフィールドを指定します。
- ROLE_TITLE: 人が読める形式のロールタイトル。例:- My Company Admin
- ROLE_DESCRIPTION: ロールの説明。例:- "The company admin role allows company admins to access important resources"
- PERMISSION_1と- PERMISSION_2: ロールに含める権限。例:- storage.objects.update。権限名にワイルドカード文字(- *)は使用できません。
- LAUNCH_STAGE: ロールの現在のリリース ステージ。このフィールドの値は、- EAP、- ALPHA、- BETA、- GA、- DEPRECATED、- DISABLEDのいずれかになります。
 - C++- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM C++ API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - C#- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM C# API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - Go- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM Go API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - Java- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM Java API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - Python- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM Python API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - REST- roles.patchメソッドを使用すると、プロジェクトまたは組織内のカスタムロールを更新できます。- リクエストのデータを使用する前に、次のように置き換えます。 - 必須: - 推奨: - 省略可(以下の値を 1 つ以上定義します): - HTTP メソッドと URL: - PATCH https://iam.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/roles - リクエストの本文(JSON): - { "roleId": "ROLE_NAME", "title": "ROLE_TITLE", "description": "ROLE_DESCRIPTION", "includedPermissions": [ "PERMISSION_1", "PERMISSION_2" ], "stage": "LAUNCH-STAGE", "etag": "ETAG" }- リクエストを送信するには、次のいずれかのオプションを展開します。 - レスポンスには省略されたロール定義が含まれます。この定義には、ロール名、更新したフィールド、ロールの現在のバージョンを識別する ETag が含まれます。 - { "name": "projects/test-project-1000092/roles/myCompanyAdmin", "title": "My Updated Company Admin", "includedPermissions": [ "storage.buckets.get", "storage.buckets.list" ], "stage": "BETA", "etag": "BwWoyDpAxBc=" }- カスタムロールを無効にする- カスタムロールを無効にするには、リリース ステージを - DISABLEDに変更します。ロールを無効にすると、そのロールに関連するロール バインディングはすべて無効になります。つまり、ユーザーにロールを付与しても効果はありません。- コンソール- Google Cloud コンソールで、[ロール] ページに移動します。 
- ページの上部にある [プロジェクトを選択] プルダウン リストをクリックします。 
- 組織またはプロジェクトを選択します。 
- カスタムの役割を選択し、[無効] をクリックします。 
 - gcloud- 
  
   
   
  
 
 
 
  
    
    In the Google Cloud console, activate Cloud Shell. At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize. 
- 
    gcloud iam roles updateコマンドを使用して、開始ステージをDISABLEDに設定し、カスタムロールを無効にします。既存のカスタムロールの編集の gcloud タブで説明されているように、次の 2 つの方法で既存のカスタムロールを更新できます。 - 
        更新されたロール定義が含まれる YAML ファイルを使用する 
- 
        フラグを使用して、更新されたロール定義を指定する 
 既存のカスタムロールを無効にする最も簡単な方法は、 --stageフラグをDISABLEDに設定する方法です。次のいずれかのコマンドを実行します。- 
        組織レベルのロールを無効にするには、次のコマンドを実行します。 gcloud iam roles update ROLE_ID--organization=ORGANIZATION_ID \ --stage=DISABLED
- 
        プロジェクト レベルのロールを無効にするには、次のコマンドを実行します。 gcloud iam roles update ROLE_ID --project=PROJECT_ID \ --stage=DISABLED
 各プレースホルダ値についての説明は次のとおりです。 - 
        ROLE_IDはロールの名前です(myCompanyAdminなど)。
- 
        ORGANIZATION_IDは組織の数値 ID です(123456789012など)。
- 
        PROJECT_IDはプロジェクトの名前です(my-projectなど)。
 例 次の例は、組織レベルのロールを無効にする方法を示しています。 gcloud iam roles update myCompanyAdmin --organization=123456789012 \ --stage=DISABLEDロールが正常に更新された場合、コマンドの出力は次のようになります。 description: My custom role description. etag: BwVkB5NLIQw= includedPermissions: - iam.roles.get - iam.roles.list name: organizations/123456789012/roles/myCompanyAdmin stage: DISABLED title: My Company Admin 次の例は、プロジェクト レベルのロールを無効にする方法を示しています。 gcloud iam roles update myCompanyAdmin --project=my-project \ --stage=DISABLEDロールが正常に更新された場合、コマンドの出力は次のようになります。 description: My custom role description. etag: BwVkB5NLIQw= includedPermissions: - iam.roles.get - iam.roles.list name: projects/my-project/roles/myCompanyAdmin stage: DISABLED title: My Company Admin 
- 
        
- RESOURCE_TYPE: カスタムロールを管理するリソースタイプ。値- projectsまたは- organizationsを使用します。
- RESOURCE_ID: カスタムロールを管理するプロジェクト ID または組織 ID。プロジェクト ID は英数字からなる文字列です(例:- my-project)。組織 ID は数値で指定します(例:- 123456789012)。
- ROLE_NAME:- organizations/、- projects/、- roles/のいずれかの接頭辞を含む完全なロール名。たとえば、- organizations/123456789012/roles/myCompanyAdmin。
- ETAG: ロールのバージョンの識別子。他のロールの変更を上書きしないようにするには、このフィールドを指定します。
 - C++- ロールの - stageフィールドを- DISABLEDに更新します。- C#- ロールの - stageフィールドを- DISABLEDに更新します。- Go- ロールの - stageフィールドを- DISABLEDに更新します。- Java- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM Java API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - Python- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM Python API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - REST- roles.patchメソッドを使用すると、カスタムロールのリリース ステージを- DISABLEDに変更し、ロールを無効にすることができます。- リクエストのデータを使用する前に、次のように置き換えます。 - HTTP メソッドと URL: - PATCH https://iam.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/roles - リクエストの本文(JSON): - { "roleId": "ROLE_NAME", "stage": DISABLED, "etag": "ETAG" }- リクエストを送信するには、次のいずれかのオプションを展開します。 - 次のような JSON レスポンスが返されます。 - { "name": "projects/test-project-1000092/roles/myCompanyAdmin", "stage": "DISABLED", "etag": "BwWoyDpAxBc=" }- ロールを一覧表示する- プロジェクトまたは組織で作成されたすべてのカスタムロールを一覧表示できます。 - コンソール- Google Cloud コンソールで、[ロール] ページに移動します。 - 選択した組織またはプロジェクトのすべてのカスタムロールが一覧表示されます。 - gcloud- 
  
   
   
  
 
 
 
  
    
    In the Google Cloud console, activate Cloud Shell. At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize. 
- 
    gcloud iam roles listコマンドを使用して、プロジェクトまたは組織のカスタムロールと事前定義ロールを一覧表示します。- 
        組織レベルのカスタムロールを一覧表示するには、次のコマンドを実行します。 gcloud iam roles list --organization=ORGANIZATION_ID 
- 
        プロジェクト レベルのカスタムロールを一覧表示するには、次のコマンドを実行します。 gcloud iam roles list --project=PROJECT_ID 
 各プレースホルダ値についての説明は次のとおりです。 - 
        ORGANIZATION_IDは組織の数値 ID です(123456789012など)。
- 
        PROJECT_IDはプロジェクトの名前です(my-projectなど)。
 削除されたロールを一覧表示するには、 --show-deletedフラグを指定します。次のコマンドを実行して、事前定義ロールを一覧表示します。 gcloud iam roles list 
- 
        
- RESOURCE_TYPE: カスタムロールを管理するリソースタイプ。値- projectsまたは- organizationsを使用します。
- RESOURCE_ID: カスタムロールを管理するプロジェクト ID または組織 ID。プロジェクト ID は英数字からなる文字列です(例:- my-project)。組織 ID は数値で指定します(例:- 123456789012)。
- ROLE_VIEW: 省略可。返されるロールに含める情報。ロールの権限を含めるには、このフィールドを- FULLに設定します。ロールの権限を除外するには、このフィールドを- BASICに設定します。デフォルト値は- BASICです。
- PAGE_SIZE: 省略可。レスポンスに含めるロールの数。デフォルト値は 300、最大値は 1,000 です。ロールの数がページサイズよりも大きい場合、レスポンスには、次の結果ページを取得するために使用するページ設定トークンが含まれます。
- NEXT_PAGE_TOKEN: 省略可。以前のレスポンスでこのメソッドから返されたページ設定トークン。指定すると、前のリクエストが終了した時点からロールのリストが開始します。
 - C++- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM C++ API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - C#- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM C# API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - Go- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM Go API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - Java- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM Java API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - Python- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM Python API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - REST- roles.listメソッドを使用すると、プロジェクトまたは組織内のすべてのカスタムロールの一覧を取得できます。- リクエストのデータを使用する前に、次のように置き換えます。 - HTTP メソッドと URL: - GET https://iam.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/roles?view=ROLE_VIEW&pageSize=PAGE_SIZE&pageToken=NEXT_PAGE_TOKEN - リクエストを送信するには、次のいずれかのオプションを展開します。 - 次のような JSON レスポンスが返されます。 - { "roles": [ { "name": "projects/my-project/roles/customRole1", "title": "First Custom Role", "description": "Created on: 2020-06-01", "etag": "BwWiPg2fmDE=" }, { "name": "projects/my-project/roles/customRole2", "title": "Second Custom Role", "description": "Created on: 2020-06-07", "etag": "BwWiuX53Wi0=" } ] }- カスタムロールを削除する- プロジェクトまたは組織内のカスタムロールを削除できます。 - コンソール- Google Cloud コンソールで、[ロール] ページに移動します。 
- 削除するロールを選択して、ページの上部にある delete(削除)をクリックします。 
 - gcloud- 
  
   
   
  
 
 
 
  
    
    In the Google Cloud console, activate Cloud Shell. At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize. 
- 
    gcloud iam roles deleteコマンドを使用して、カスタムロールを削除します。- 
        組織レベルのカスタムロールを削除するには、次のコマンドを実行します。 gcloud iam roles delete ROLE_ID --organization=ORGANIZATION_ID 
- 
        プロジェクト レベルのカスタムロールを削除するには、次のコマンドを実行します。 gcloud iam roles delete ROLE_ID --project=PROJECT_ID 
 各プレースホルダ値についての説明は次のとおりです。 - 
        ROLE_IDはロールの名前です(myCompanyAdminなど)。
- 
        ORGANIZATION_IDは組織の数値 ID です(123456789012など)。
- 
        PROJECT_IDはプロジェクトの名前です(my-projectなど)。
 --show-deletedフラグが含まれていない場合は、gcloud iam roles listにロールが含まれません。削除されたロールは、次のように、listレスポンスのdeleted: trueブロックに示されます。--- deleted: true description: My custom role description. etag: BwVkB5NLIQw= name: projects/my-project/roles/myCompanyAdmin title: My Company Admin --- 
- 
        
- ROLE_NAME:- organizations/、- projects/、- roles/のいずれかの接頭辞を含む完全なロール名。たとえば、- organizations/123456789012/roles/myCompanyAdmin。
 - C++- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM C++ API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - C#- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM C# API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - Go- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM Go API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - Java- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM Java API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - Python- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM Python API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - REST- roles.deleteメソッドを使用すると、プロジェクトまたは組織内のカスタムロールを削除できます。- リクエストのデータを使用する前に、次のように置き換えます。 - HTTP メソッドと URL: - DELETE https://iam.googleapis.com/v1/ROLE_NAME - リクエストを送信するには、次のいずれかのオプションを展開します。 - レスポンスには、削除されたロールの定義が含まれます。 - { "name": "projects/my-project/roles/myCompanyAdmin", "title": "My Company Admin", "description": "My custom role description.", "includedPermissions": [ "iam.roles.get", "iam.roles.list" ], "etag": "BwWiPg2fmDE=", "deleted": true }- ロールを削除しても、そのロールを参照するロール バインディングは許可ポリシーに残りますが、効果はありません。ロールは 7 日以内であれば削除を取り消すことができます。この 7 日間、 Google Cloud コンソールにはロールが削除されたことが表示されます。削除されたロールはプログラムで一覧表示することもできますが、デフォルトでは省略されています。 - ロールの削除が最初にリクエストされてから 7~14 日後に完全に削除されるようスケジュール設定されます。この時点で、ロールは組織あたり 300 個のカスタムロールまたはプロジェクトあたり 300 個のカスタムロールの上限にカウントされなくなります。 - ロールの完全削除がスケジュール設定されると、 Google Cloud はロールを完全に削除するプロセスを開始します。このプロセスには 30 日かかります。この 30 日の間に、ロールと、そのロールに関連付けられているすべてのバインディングが完全に削除されます。同じロール ID を使用して新しいロールを作成することはできません。 - 最初の削除リクエストの発行からロールが完全に削除された後 44 日以内であれば、同じロール ID を使用して新しいロールを作成できます。 - カスタムロールの削除を取り消す- ロールの削除を取り消すと、以前の状態に戻ります。 - ロールの削除は、削除から 7 日以内に限って取り消すことができます。7 日後、 Google Cloud はロールを完全に削除するプロセスを開始します。この完全削除のプロセスには最長で 30 日かかることがあります。ロールが完全に削除されると、そのロールを参照するすべてのロール バインディングが削除され、同じロール ID を使用して新しいロールを作成できるようになります。 - コンソール- Google Cloud コンソールで、[ロール] ページに移動します。 
- 削除を取り消すロールを見つけ、行の最後にあるその他アイコンをクリックして [削除を取り消す] をクリックします。 
 - gcloud- 
  
   
   
  
 
 
 
  
    
    In the Google Cloud console, activate Cloud Shell. At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize. 
- 
    gcloud iam roles undeleteを使用して、カスタムロールの削除を取り消します。- 
        組織レベルのカスタムロールの削除を取り消すには、次のコマンドを実行します。 gcloud iam roles undelete ROLE_ID --organization=ORGANIZATION_ID 
- 
        プロジェクト レベルのカスタムロールの削除を取り消すには、次のコマンドを実行します。 gcloud iam roles undelete ROLE_ID --project=PROJECT_ID 
 各プレースホルダ値についての説明は次のとおりです。 - 
        ROLE_IDはロールの名前です(myCompanyAdminなど)。
- 
        ORGANIZATION_IDは組織の数値 ID です(123456789012など)。
- 
        PROJECT_IDはプロジェクトの名前です(my-projectなど)。
 例 次の例は、組織レベルのカスタムロールの削除を取り消す方法を示しています。 gcloud iam roles undelete myCompanyAdmin --organization=123456789012 ロールの削除が正常に取り消された場合、コマンドの出力は次のようになります。 description: My custom role description. etag: BwVkCAx9W6w= includedPermissions: - iam.roles.get - iam.roles.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin 次の例は、プロジェクト レベルのカスタムロールの削除を取り消す方法を示しています。 gcloud iam roles undelete myCompanyAdmin --project=my-project ロールの削除が正常に取り消された場合、コマンドの出力は次のようになります。 description: My custom role description. etag: BwVkCAx9W6w= includedPermissions: - iam.roles.get - iam.roles.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin 
- 
        
- ROLE_NAME:- organizations/、- projects/、- roles/のいずれかの接頭辞を含む完全なロール名。たとえば、- organizations/123456789012/roles/myCompanyAdmin。
- ETAG: ロールのバージョンの識別子。他のロールの変更を上書きしないようにするには、このフィールドを指定します。
 - C++- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM C++ API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - C#- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM C# API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - Go- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM Go API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - Java- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM Java API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - Python- IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM Python API のリファレンス ドキュメントをご覧ください。 - IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。 - REST- roles.undeleteメソッドを使用すると、プロジェクトまたは組織内のカスタムロールの削除を取り消すことができます。- リクエストのデータを使用する前に、次のように置き換えます。 - HTTP メソッドと URL: - POST https://iam.googleapis.com/v1/ROLE_NAME:undelete - リクエストの本文(JSON): - { "etag": "ETAG" }- リクエストを送信するには、次のいずれかのオプションを展開します。 - レスポンスには、削除を取り消したロールの定義が含まれます。 - { "name": "projects/my-project/roles/myCompanyAdmin", "title": "My Company Admin", "description": "My custom role description.", "includedPermissions": [ "iam.roles.get", "iam.roles.list" ], "etag": "BwWiPg2fmDE=" }- 次のステップ- プリンシパルにロールを付与する方法を確認する。
- ロールの推奨事項を使用してプリンシパルの権限の範囲を限定する方法を確認する。
- 特定の条件を満たす場合にのみロールを付与する条件付きロール バインディングについて学習する。
 - 特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。 - 最終更新日 2025-10-21 UTC。