控制对资源的访问权限

您可以设置 Identity and Access Management (IAM) 政策来控制对以下 Vertex AI Feature Store 资源的访问权限:

  • 特征组

  • 在线存储区实例

  • 特征视图

IAM 政策是一组绑定,用于将一个或多个成员或主账号与 IAM 角色相关联。您可以在 IAM 政策绑定中添加以下类型的成员:

  • 个人用户账号

  • Google 群组

  • 网域

  • 服务账号

准备工作

向 Gemini Enterprise Agent Platform 进行身份验证,除非您已完成此操作。

如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的 凭据。

    安装 Google Cloud CLI,然后 使用联合身份登录 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 角色的名称。如需查看适用于 Gemini Enterprise Agent Platform 的完整 IAM 角色列表,请参阅使用 IAM 进行访问权限控制
  • USER_EMAIL:可选。要向其分配角色的用户账号的邮箱。
  • GROUP_EMAIL:可选。要向其分配角色的 Google 群组的邮箱。
  • DOMAIN_NAME:可选。要向其分配角色的域名。
  • SERVICE_ACCOUNT_EMAIL:可选。要向其分配角色的服务账号的邮箱。

HTTP 方法和网址:

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 角色的名称。如需查看适用于 Gemini Enterprise Agent Platform 的完整 IAM 角色列表,请参阅使用 IAM 进行访问权限控制
  • USER_EMAIL:可选。要向其分配角色的用户账号的邮箱。
  • GROUP_EMAIL:可选。要向其分配角色的 Google 群组的邮箱。
  • DOMAIN_NAME:可选。要向其分配角色的域名。
  • SERVICE_ACCOUNT_EMAIL:可选。要向其分配角色的服务账号的邮箱。

HTTP 方法和网址:

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 角色的名称。如需查看适用于 Gemini Enterprise Agent Platform 的完整 IAM 角色列表,请参阅使用 IAM 进行访问权限控制
  • USER_EMAIL:可选。要向其分配角色的用户账号的邮箱。
  • GROUP_EMAIL:可选。要向其分配角色的 Google 群组的邮箱。
  • DOMAIN_NAME:可选。要向其分配角色的域名。
  • SERVICE_ACCOUNT_EMAIL:可选。要向其分配角色的服务账号的邮箱。

HTTP 方法和网址:

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"
}

后续步骤