Privileged Access Manager での利用資格の表示、更新、削除

利用資格を作成したら、それを表示、更新、削除できます。

始める前に

Privileged Access Manager を有効にして、権限を設定していることを確認します。

Google Cloud コンソールでの利用資格の表示、更新、削除

  1. [Privileged Access Manager] ページに移動します。

    Privileged Access Manager に移動

  2. 利用資格を管理する組織、フォルダ、またはプロジェクトを選択します。

  3. [利用資格] タブで [すべてのユーザーを対象とした利用資格] タブをクリックします。ここでは、利用可能な利用資格、付与されるロール、有効なリクエスト元と承認者を確認できます。

  4. 表で、確認する利用資格と同じ行にある その他のオプション)をクリックします。

    • 利用資格の詳細を表示するには、[資格の詳細を表示する] をクリックします。

    • 利用資格に関連付けられている権限付与を表示するには、[関連する付与を表示] をクリックします。

    • 利用資格の有効な権限付与をすべて取り消すには、[すべての権限を取り消す] をクリックします。

    • 利用資格を削除するには、[資格を削除する] をクリックします。有効な権限付与がある利用資格は削除できません。権限付与を先に取り消す必要があります。

  5. 利用資格を更新するには、更新する利用資格と同じ行にある [ 権限の編集] をクリックします。

    利用資格を更新する際は、次の点に注意してください。

    • 更新された利用資格の構成は、更新後にリクエストされた権限付与にのみ適用されます。ただし、承認者の変更は、まだ承認または拒否されていない既存の権限付与リクエストにも適用されます。

    • 利用資格を更新する際に、承認が必要かどうかを変更することはできません。承認ステータスを変更する必要がある場合は、代わりに新しい利用資格を作成してください。

    • 利用資格のリクエスト元と承認者の変更が反映されるまでに数分かかることがあります

プログラムで利用資格を表示する

利用資格をプログラムで表示するには、検索、一覧表示、取得、エクスポートを行います。

利用資格を一覧表示する

gcloud

gcloud beta pam entitlements list コマンドは、特定のスコープに属する利用資格を一覧表示します。

後述のコマンドデータを使用する前に、次のように置き換えます。

  • RESOURCE_TYPE: 省略可。利用資格が属するリソースタイプ。値 organizationfolder、または project を使用します。
  • RESOURCE_ID: RESOURCE_TYPE とともに使用します。利用資格を管理する Google Cloud プロジェクト、フォルダ、または組織の ID。プロジェクト ID は英数字からなる文字列です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。

次のコマンドを実行します。

Linux、macOS、Cloud Shell

gcloud beta pam entitlements list \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows(PowerShell)

gcloud beta pam entitlements list `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows(cmd.exe)

gcloud beta pam entitlements list ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

次のようなレスポンスが返されます。

additionalNotificationTargets:
  adminEmailRecipients:
  - alex@example.com
createTime: '2024-03-26T11:07:37.009498890Z'
eligibleUsers:
- principals:
  - user:bola@example.com
etag: 00000000000000000000000000000000000000000000000000000000000=
maxRequestDuration: 3600s
name: projects/my-project/locations/global/entitlements/ENTITLEMENT_ID
privilegedAccess:
  gcpIamAccess:
    resource: //cloudresourcemanager.googleapis.com/projects/my-project
    resourceType: cloudresourcemanager.googleapis.com/Project
    roleBindings:
    - role: roles/storage.admin
requesterJustificationConfig:
  unstructured: {}
state: AVAILABLE
updateTime: '2024-03-26T11:07:40.056780645Z'

REST

Privileged Access Manager API の listEntitlements メソッドは、特定のスコープに属する利用資格を一覧表示します。

リクエストのデータを使用する前に、次のように置き換えます。

  • SCOPE: 利用資格が含まれる組織、フォルダ、またはプロジェクト。organizations/ORGANIZATION_IDfolders/FOLDER_ID、または projects/PROJECT_ID の形式です。プロジェクト ID は英数字からなる文字列です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。
  • FILTER: 省略可。フィールド値が AIP-160 式と一致する利用資格を返します。
  • PAGE_SIZE: 省略可。レスポンスで返すアイテムの数。
  • PAGE_TOKEN: 省略可。前のレスポンスで返されたページトークンを使用して、レスポンスの開始ページを指定します。

HTTP メソッドと URL:

GET https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements?filter=FILTER&pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

[
  {
    "name": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID",
    "createTime": "2023-11-21T17:28:39.962144708Z",
    "updateTime": "2023-11-21T17:28:43.160309410Z",
    "eligibleUsers": [
      {
        "principals": [
          "user:alex@example.com"
        ]
      }
    ],
    "approvalWorkflow": {
      "manualApprovals": {
        "steps": [
          {
            "approvers": [
              {
                "principals": [
                  "user:bola@example.com"
                ]
              }
            ],
            "approvalsNeeded": 1
          }
        ]
      }
    },
    "privilegedAccess": {
      "gcpIamAccess": {
        "resourceType": "cloudresourcemanager.googleapis.com/Project",
        "resource": "//cloudresourcemanager.googleapis.com/projects/my-project",
        "roleBindings": [
          {
            "role": "roles/storage.admin"
          }
        ]
      }
    },
    "maxRequestDuration": "14400s",
    "state": "AVAILABLE",
    "requesterJustificationConfig": {
      "unstructured": {}
    },
    "additionalNotificationTargets": {
      "adminEmailRecipients": [
        "alex@example.com"
      ]
    },
    "etag": "00000000000000000000000000000000000000000000000000000000000="
  }
]

利用資格を取得する

gcloud

gcloud beta pam entitlements describe コマンドは、特定の利用資格を取得します。

後述のコマンドデータを使用する前に、次のように置き換えます。

  • ENTITLEMENT_ID: 詳細を取得する利用資格の ID。
  • RESOURCE_TYPE: 省略可。利用資格が属するリソースタイプ。値 organizationfolder、または project を使用します。
  • RESOURCE_ID: RESOURCE_TYPE とともに使用します。利用資格を管理する Google Cloud プロジェクト、フォルダ、または組織の ID。プロジェクト ID は英数字からなる文字列です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。

次のコマンドを実行します。

Linux、macOS、Cloud Shell

gcloud beta pam entitlements describe \
    ENTITLEMENT_ID \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows(PowerShell)

gcloud beta pam entitlements describe `
    ENTITLEMENT_ID `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows(cmd.exe)

gcloud beta pam entitlements describe ^
    ENTITLEMENT_ID ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

次のようなレスポンスが返されます。

additionalNotificationTargets:
  adminEmailRecipients:
  - alex@example.com
createTime: '2024-03-26T11:07:37.009498890Z'
eligibleUsers:
- principals:
  - user:bola@example.com
etag: 00000000000000000000000000000000000000000000000000000000000=
maxRequestDuration: 3600s
name: projects/my-project/locations/global/entitlements/ENTITLEMENT_ID
privilegedAccess:
  gcpIamAccess:
    resource: //cloudresourcemanager.googleapis.com/projects/my-project
    resourceType: cloudresourcemanager.googleapis.com/Project
    roleBindings:
    - role: roles/storage.admin
requesterJustificationConfig:
  unstructured: {}
state: AVAILABLE
updateTime: '2024-03-26T11:07:40.056780645Z'

REST

Privileged Access Manager API の getEntitlement メソッドは、特定の利用資格を取得します。

リクエストのデータを使用する前に、次のように置き換えます。

  • SCOPE: 利用資格を取得する組織、フォルダ、またはプロジェクト。organizations/ORGANIZATION_IDfolders/FOLDER_IDprojects/PROJECT_ID の形式で指定します。プロジェクト ID は英数字からなる文字列です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。
  • ENTITLEMENT_ID: 詳細を取得する利用資格の ID。

HTTP メソッドと URL:

GET https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements/ENTITLEMENT_ID

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "name": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID",
  "createTime": "2023-11-21T17:28:39.962144708Z",
  "updateTime": "2023-11-21T17:28:43.160309410Z",
  "eligibleUsers": [
    {
      "principals": [
        "user:alex@example.com"
      ]
    }
  ],
  "approvalWorkflow": {
    "manualApprovals": {
      "steps": [
        {
          "approvers": [
            {
              "principals": [
                "user:bola@example.com"
              ]
            }
          ],
          "approvalsNeeded": 1
        }
      ]
    }
  },
  "privilegedAccess": {
    "gcpIamAccess": {
      "resourceType": "cloudresourcemanager.googleapis.com/Project",
      "resource": "//cloudresourcemanager.googleapis.com/projects/my-project",
      "roleBindings": [
        {
          "role": "roles/storage.admin"
        }
      ]
    }
  },
  "maxRequestDuration": "14400s",
  "state": "AVAILABLE",
  "requesterJustificationConfig": {
    "unstructured": {}
  },
  "additionalNotificationTargets": {
    "adminEmailRecipients": [
      "alex@example.com"
    ]
  },
  "etag": "00000000000000000000000000000000000000000000000000000000000="
}

gcloud CLI を使用して利用資格をエクスポートする

gcloud beta pam entitlements export コマンドは、特定の利用資格を YAML ファイルにエクスポートします。

後述のコマンドデータを使用する前に、次のように置き換えます。

  • ENTITLEMENT_ID: エクスポートする利用資格の ID。
  • FILENAME: 利用資格の内容をエクスポートするファイル名。
  • RESOURCE_TYPE: 省略可。利用資格が属するリソースタイプ。値 organizationfolder、または project を使用します。
  • RESOURCE_ID: RESOURCE_TYPE とともに使用します。利用資格を管理する Google Cloud プロジェクト、フォルダ、または組織の ID。プロジェクト ID は英数字からなる文字列です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。

次のコマンドを実行します。

Linux、macOS、Cloud Shell

gcloud beta pam entitlements export \
    ENTITLEMENT_ID \
    --destination=FILENAME.yaml \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows(PowerShell)

gcloud beta pam entitlements export `
    ENTITLEMENT_ID `
    --destination=FILENAME.yaml `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows(cmd.exe)

gcloud beta pam entitlements export ^
    ENTITLEMENT_ID ^
    --destination=FILENAME.yaml ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

次のようなレスポンスが返されます。

Exported [projects/my-project/locations/global/entitlements/ENTITLEMENT_ID] to 'FILENAME.yaml'.

プログラムで利用資格を更新する

利用資格を更新する際は、次の点に注意してください。

  • 更新された利用資格の構成は、更新後にリクエストされた権限付与にのみ適用されます。ただし、承認者の変更は、まだ承認または拒否されていない既存の権限付与リクエストにも適用されます。

  • 利用資格を更新する際に、承認が必要かどうかを変更することはできません。承認ステータスを変更する必要がある場合は、代わりに新しい利用資格を作成してください。

  • 利用資格のリクエスト元と承認者の変更が反映されるまでに数分かかることがあります

gcloud

gcloud beta pam entitlements update コマンドは、特定のエンティティを更新します。

後述のコマンドデータを使用する前に、次のように置き換えます。

  • ENTITLEMENT_ID: 更新する利用資格の ID。
  • RESOURCE_TYPE: 省略可。利用資格が属するリソースタイプ。値 organizationfolder、または project を使用します。
  • RESOURCE_ID: RESOURCE_TYPE とともに使用します。利用資格を管理する Google Cloud プロジェクト、フォルダ、または組織の ID。プロジェクト ID は英数字からなる文字列です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。
  • FILENAME: 利用資格の変更後の構成を含むファイル。このファイルを作成するには、既存の利用資格を取得またはエクスポートし、YAML ファイルに保存します。次に、このファイルを更新リクエストの本文として使用するように YAML ファイルを変更します。最新バージョンの利用資格を更新するには、本文に ETAG を含める必要があります。変更または追加できるフィールドについては、プログラムで利用資格を作成するをご覧ください。

次のコマンドを実行します。

Linux、macOS、Cloud Shell

gcloud beta pam entitlements update \
    ENTITLEMENT_ID \
    --entitlement-file=FILENAME.yaml \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows(PowerShell)

gcloud beta pam entitlements update `
    ENTITLEMENT_ID `
    --entitlement-file=FILENAME.yaml `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows(cmd.exe)

gcloud beta pam entitlements update ^
    ENTITLEMENT_ID ^
    --entitlement-file=FILENAME.yaml ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

次のようなレスポンスが返されます。

Request issued for: [ENTITLEMENT_ID]
Waiting for operation [projects/my-project/locations/global/operations/OPERATION_ID] to complete...done.
Updated entitlement [ENTITLEMENT_ID].
approvalWorkflow:
  manualApprovals:
    requireApproverJustification: true
    steps:
    - approvalsNeeded: 1
      approvers:
      - principals:
        - user:alex@example.com
createTime: '2024-04-09T02:39:37.011866832Z'
eligibleUsers:
- principals:
  - user:bola@example.com
etag: 00000000000000000000000000000000000000000000000000000000000=
maxRequestDuration: 7200s
name: projects/my-project/locations/global/entitlements/ENTITLEMENT_ID
privilegedAccess:
  gcpIamAccess:
    resource: //cloudresourcemanager.googleapis.com/projects/my-project
    resourceType: cloudresourcemanager.googleapis.com/Project
    roleBindings:
    - role: roles/storage.admin
requesterJustificationConfig:
  unstructured: {}
state: AVAILABLE
updateTime: '2024-04-09T02:39:40.066770306Z'

REST

Privileged Access Manager API の updateEntitlement メソッドは、特定の利用資格を更新します。

リクエストのデータを使用する前に、次のように置き換えます。

  • SCOPE: 利用資格が含まれる組織、フォルダ、またはプロジェクト。organizations/ORGANIZATION_IDfolders/FOLDER_ID、または projects/PROJECT_ID の形式です。プロジェクト ID は英数字からなる文字列です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。
  • ENTITLEMENT_ID: 更新する利用資格の ID。
  • UPDATED_FIELDS: 利用資格で更新されるフィールドのカンマ区切りリスト。例:

    ?updateMask=privilegedAccess,maxRequestDuration

    更新可能なすべてのフィールドで、更新マスクを * に設定します。

  • REQUEST_ID: 省略可。ゼロ以外の UUID である必要があります。サーバーがリクエスト ID を含むリクエストを受信すると、その ID を含む別のリクエストが過去 60 分以内に完了しているかどうかを確認します。その場合、新しいリクエストは無視されます。
  • request.json: 利用資格の変更後の構成を含むファイル。このファイルを作成するには、既存の利用資格を取得またはエクスポートし、request.json という名前のファイルに保存します。次に、このファイルを更新リクエストの本文として使用するように変更します。最新バージョンの利用資格を更新するには、本文に ETAG を含める必要があります。変更または追加できるフィールドについては、プログラムで利用資格を作成するをご覧ください。

HTTP メソッドと URL:

PATCH https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements/ENTITLEMENT_ID?updateMask=UPDATED_FIELDS&requestId=REQUEST_ID

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "name": "projects/my-project/locations/global/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.privilegedaccessmanager.v1beta.OperationMetadata",
    "createTime": "2024-03-25T01:55:02.544562950Z",
    "target": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID",
    "verb": "update",
    "requestedCancellation": false,
    "apiVersion": "v1beta"
  },
  "done": false
}

更新オペレーションの進行状況を確認するには、次のエンドポイントに GET リクエストを送信します。

https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/operations/OPERATION_ID

次のエンドポイントに GET リクエストを送信して、すべてのオペレーションを一覧表示します。

https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/operations

プログラムで利用資格を削除する

gcloud

gcloud beta pam entitlements delete コマンドは、特定のエンティティを削除します。

後述のコマンドデータを使用する前に、次のように置き換えます。

  • ENTITLEMENT_ID: 削除する利用資格の ID。
  • RESOURCE_TYPE: 省略可。利用資格が属するリソースタイプ。値 organizationfolder、または project を使用します。
  • RESOURCE_ID: RESOURCE_TYPE とともに使用します。利用資格を管理する Google Cloud プロジェクト、フォルダ、または組織の ID。プロジェクト ID は英数字からなる文字列です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。

次のコマンドを実行します。

Linux、macOS、Cloud Shell

gcloud beta pam entitlements delete \
    ENTITLEMENT_ID \
    --location=global \
    --RESOURCE_TYPE=RESOURCE_ID

Windows(PowerShell)

gcloud beta pam entitlements delete `
    ENTITLEMENT_ID `
    --location=global `
    --RESOURCE_TYPE=RESOURCE_ID

Windows(cmd.exe)

gcloud beta pam entitlements delete ^
    ENTITLEMENT_ID ^
    --location=global ^
    --RESOURCE_TYPE=RESOURCE_ID

次のようなレスポンスが返されます。

Delete request issued for: [ENTITLEMENT_ID]
Waiting for operation [projects/my-project/locations/global/operations/OPERATION_ID] to complete...done.
Deleted entitlement [ENTITLEMENT_ID].

REST

Privileged Access Manager API の deleteEntitlement メソッドは、特定のエンティティを削除します。

リクエストのデータを使用する前に、次のように置き換えます。

  • SCOPE: 利用資格を削除する組織、フォルダ、またはプロジェクト。organizations/ORGANIZATION_IDfolders/FOLDER_IDprojects/PROJECT_ID の形式で指定します。プロジェクト ID は英数字からなる文字列です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。
  • ENTITLEMENT_ID: 削除する利用資格の ID。
  • REQUEST_ID: 省略可。ゼロ以外の UUID である必要があります。サーバーがリクエスト ID を含むリクエストを受信すると、その ID を含む別のリクエストが過去 60 分以内に完了しているかどうかを確認します。その場合、新しいリクエストは無視されます。

HTTP メソッドと URL:

DELETE https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements/ENTITLEMENT_ID?requestId=REQUEST_ID

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "name": "projects/my-project/locations/global/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.privilegedaccessmanager.v1beta.OperationMetadata",
    "createTime": "2024-03-06T02:28:28.020293460Z",
    "target": "projects/my-project/locations/global/entitlements/ENTITLEMENT_ID",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1beta"
  },
  "done": false
}

削除オペレーションの進行状況を確認するには、次のエンドポイントに GET リクエストを送信します。

https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/operations/OPERATION_ID

次のエンドポイントに GET リクエストを送信して、すべてのオペレーションを一覧表示します。

https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/operations