リソースへのアクセスを制御する

Identity and Access Management(IAM)ポリシーを設定して、次の Vertex AI Feature Store リソースへのアクセスを制御できます。

  • 特徴グループ

  • オンライン ストア インスタンス

  • 特徴ビュー

IAM ポリシーは、1 つ以上のメンバー(プリンシパル)を IAM ロールに関連付けるバインディングの集合です。IAM ポリシー バインディングには、次のタイプのメンバーを含めることができます。

  • 個々のユーザー アカウント

  • Google グループ

  • ドメイン

  • サービス アカウント

始める前に

まだ行っていない場合は、Vertex AI に対する認証を行います。

このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

    Google Cloud CLI をインストールします。 インストール後、次のコマンドを実行して Google Cloud CLI を初期化します。

    gcloud init

    外部 ID プロバイダ(IdP)を使用している場合は、まずフェデレーション ID を使用して gcloud CLI にログインする必要があります。

詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。

特徴グループの IAM ポリシーを設定する

次のサンプルでは、既存の特徴グループに IAM ポリシーを設定します。

REST

FeatureGroup リソースに IAM ポリシーを割り当てるには、featureGroups.setIamPolicy メソッドを使用して POST リクエストを送信します。

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

  • LOCATION_ID: オンライン ストア インスタンスが配置されているリージョン(us-central1 など)。
  • PROJECT_ID: 実際のプロジェクト ID。
  • FEATUREGROUP_NAME: IAM ポリシーを設定するオンライン ストア インスタンスの名前。
  • IAM_ROLE_NAME: メンバーに割り当てる IAM ロールの名前。Vertex AI の IAM ロールの一覧については、IAM を使用したアクセス制御をご覧ください。
  • USER_EMAIL: 省略可。ロールを割り当てるユーザー アカウントのメールアドレス。
  • GROUP_EMAIL: 省略可。ロールを割り当てる Google グループのメールアドレス。
  • DOMAIN_NAME: 省略可。ロールを割り当てるドメイン名。
  • SERVICE_ACCOUNT_EMAIL: 省略可。ロールが割り当てられているサービス アカウントのメールアドレス。

HTTP メソッドと URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME:setIamPolicy

リクエストの本文(JSON):

{
  "policy": {
    "bindings": [
      {
        "role": "IAM_ROLE_NAME",
        "members": [
          "user:USER_EMAIL",
          "group:GROUP_EMAIL",
          "domain:DOMAIN_NAME",
          "serviceAccount:SERVICE_ACCOUNT_EMAIL"
        ]
      }
    ]
  }
}

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

curl

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME:setIamPolicy"

PowerShell

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureGroups/FEATUREGROUP_NAME:setIamPolicy" | Select-Object -Expand Content

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

{
  "bindings": [
  {
    "role": "IAM_ROLE_NAME",
    "members": [
      "user:USER_EMAIL",
      "group:GROUP_EMAIL",
      "domain:DOMAIN_NAME",
      "serviceAccount:SERVICE_ACCOUNT_EMAIL"
    ]
  }
  ],
  "etag": "etag"
}

オンライン ストアの IAM ポリシーを設定する

次のサンプルでは、既存のオンライン ストア インスタンスの IAM ポリシーを設定します。

REST

FeatureOnlineStore リソースに IAM ポリシーを割り当てるには、featureOnlineStores.setIamPolicy メソッドを使用して POST リクエストを送信します。

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

  • LOCATION_ID: オンライン ストア インスタンスが配置されているリージョン(us-central1 など)。
  • PROJECT_ID: 実際のプロジェクト ID。
  • FEATUREONLINESTORE_NAME: IAM ポリシーを設定するオンライン ストア インスタンスの名前。
  • IAM_ROLE_NAME: メンバーに割り当てる IAM ロールの名前。Vertex AI の IAM ロールの一覧については、IAM を使用したアクセス制御をご覧ください。
  • USER_EMAIL: 省略可。ロールを割り当てるユーザー アカウントのメールアドレス。
  • GROUP_EMAIL: 省略可。ロールを割り当てる Google グループのメールアドレス。
  • DOMAIN_NAME: 省略可。ロールを割り当てるドメイン名。
  • SERVICE_ACCOUNT_EMAIL: 省略可。ロールを割り当てるサービス アカウントのメールアドレス。

HTTP メソッドと URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME:setIamPolicy

リクエストの本文(JSON):

{
  "policy": {
    "bindings": [
      {
        "role": "IAM_ROLE_NAME",
        "members": [
          "user:USER_EMAIL",
          "group:GROUP_EMAIL",
          "domain:DOMAIN_NAME",
          "serviceAccount:SERVICE_ACCOUNT_EMAIL"
        ]
      }
    ]
  }
}

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

curl

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME:setIamPolicy"

PowerShell

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME:setIamPolicy" | Select-Object -Expand Content

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

{
  "bindings": [
  {
    "role": "IAM_ROLE_NAME",
    "members": [
      "user:USER_EMAIL",
      "group:GROUP_EMAIL",
      "domain:DOMAIN_NAME",
      "serviceAccount:SERVICE_ACCOUNT_EMAIL"
    ]
  }
  ],
  "etag": "etag"
}

特徴ビューの IAM ポリシーを設定する

次のサンプルでは、既存の特徴ビューに IAM ポリシーを設定します。

REST

FeatureView リソースに IAM ポリシーを割り当てるには、featureViews.setIamPolicy メソッドを使用して POST リクエストを送信します。

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

  • LOCATION_ID: 特徴ビューが配置されているリージョン(例: us-central1)。
  • PROJECT_ID: 実際のプロジェクト ID。
  • FEATUREONLINESTORE_NAME: 特徴ビューを含むオンライン ストア インスタンスの名前。
  • FEATUREVIEW_NAME: IAM ポリシーを設定する特徴ビューの名前。
  • IAM_ROLE_NAME: メンバーに割り当てる IAM ロールの名前。Vertex AI の IAM ロールの一覧については、IAM を使用したアクセス制御をご覧ください。
  • USER_EMAIL: 省略可。ロールを割り当てるユーザー アカウントのメールアドレス。
  • GROUP_EMAIL: 省略可。ロールを割り当てる Google グループのメールアドレス。
  • DOMAIN_NAME: 省略可。ロールを割り当てるドメイン名。
  • SERVICE_ACCOUNT_EMAIL: 省略可。ロールを割り当てるサービス アカウントのメールアドレス。

HTTP メソッドと URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:setIamPolicy

リクエストの本文(JSON):

{
  "policy": {
    "bindings": [
      {
        "role": "IAM_ROLE_NAME",
        "members": [
          "user:USER_EMAIL",
          "group:GROUP_EMAIL",
          "domain:DOMAIN_NAME",
          "serviceAccount:SERVICE_ACCOUNT_EMAIL"
        ]
      }
    ]
  }
}

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

curl

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:setIamPolicy"

PowerShell

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:setIamPolicy" | Select-Object -Expand Content

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

{
  "bindings": [
  {
    "role": "IAM_ROLE_NAME",
    "members": [
      "user:USER_EMAIL",
      "group:GROUP_EMAIL",
      "domain:DOMAIN_NAME",
      "serviceAccount:SERVICE_ACCOUNT_EMAIL"
    ]
  }
  ],
  "etag": "etag"
}

次のステップ