オンライン ショップのリソースへのアクセスを制御する

オンライン ストア インスタンスと特徴ビューへのアクセスを制御するには、これらのリソースに Identity and Access Management(IAM)ポリシーを設定します。IAM ポリシーは、1 つ以上のメンバー(プリンシパル)を IAM ロールに関連付けるバインディングの集合です。IAM ポリシー バインディングには、次のタイプのメンバーを含めることができます。

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

  • Google グループ

  • ドメイン

  • サービス アカウント

始める前に

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

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

    Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init

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

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

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

REST

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

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

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

HTTP メソッドと URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/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/v1beta1/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/v1beta1/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 ロールの名前(例: aiplatform.featureOnlineStoreUser)。Vertex AI の IAM ロールの一覧については、[IAM を使用したアクセス制御](/vertex-ai/docs/general/access-control) をご覧ください。
  • USER_EMAIL: 省略可。ロールが割り当てられているユーザー アカウントのメールアドレス。
  • GROUP_EMAIL: 省略可。ロールが割り当てられている Google グループのメールアドレス。
  • DOMAIN_NAME: 省略可。ロールが割り当てられているドメイン名。
  • SERVICE_ACCOUNT_EMAIL: 省略可。ロールが割り当てられるサービス アカウントのメールアドレス。

HTTP メソッドと URL:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/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/v1beta1/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/v1beta1/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"
}

次のステップ