Firestore 安全规则推荐器

Firestore 安全规则推荐器支持以下建议子类型:

这会给 Firestore 客户带来安全隐患,因为这会向用户提供超出用户预期范围的额外访问权限。

本文档介绍了如何启用和查看建议和数据分析,以提高数据库的安全性。

准备工作

在查看 Firestore 安全规则建议和数据分析之前,请执行以下操作:

  1. 按照启用 API 中的说明启用 Recommender API。

  2. 确保您有足够的权限。 您必须拥有下列角色之一,才能具有必要的权限:

    任务说明 角色
    查看建议/数据分析 roles/recommender.firestoredatabasefirebaserulesViewer
    查看和更新(忽略)建议/数据分析 roles/recommender.firestoredatabasefirebaserulesAdmin
    在透明度和控制中心停用建议/数据分析。如需了解详情,请参阅停用 roles/dataprocessing.admin

    这些 Recommender 角色提供以下 API 权限:

    角色 包含的权限
    roles/recommender.firestoredatabasefirebaserulesViewer recommender.firestoreDatabaseFirebaseRulesRecommendations.get
    recommender.firestoreDatabaseFirebaseRulesRecommendations.list
    recommender.firestoreDatabaseFirebaseRulesInsights.get
    recommender.firestoreDatabaseFirebaseRulesInsights.list
    roles/recommender.firestoredatabasefirebaserulesAdmin roles/recommender.firestoredatabasefirebaserulesViewer 权限,再加上
    recommender.firestoreDatabaseFirebaseRulesRecommendations.update
    recommender.firestoreDatabaseFirebaseRulesInsights.update

    如需详细了解角色以及如何授予访问权限,请参阅以下内容:

只有当您有非空且正在使用的数据库,并且这些数据库配置了任何可供广泛访问的规则时,您才能查看 Firestore 安全规则建议。项目必须至少已创建 30 天,系统才会为其生成建议。

您可以通过多种方式查看 Firestore 安全规则建议/数据分析:

查看建议

Google Cloud 控制台

您可以按以下步骤查看建议:

前往 Google Cloud 控制台,或使用以下按钮:

前往 Google Cloud 控制台

您可以在建议中心数据库中心页面上查看建议。

  1. 搜索建议,系统会将您引导至 Recommendation Hub 页面。 您可以选择特定类别的建议并查看它们。

  2. 搜索数据库中心。 您可以应用产品过滤条件,并查看特定的车队问题。

gcloud CLI

如需使用 gcloud 列出 Firestore 安全规则建议,请运行 gcloud recommender recommendations list 命令,如下所示:

  gcloud recommender recommendations list \
  --project=PROJECT_ID \
  --location=LOCATION \
  --recommender=google.firestore.database.<var>RECOMMENDER</var>

替换以下内容:

  • PROJECT_ID:您的项目 ID
  • LOCATION:区域,例如 us-central1
  • RECOMMENDER:Recommender 的 ID,例如 FirebaseRulesRecommender

Recommender API

如需使用 Recommendations API 列出 Firestore 安全规则建议,请调用 recommendations.list 方法,如下所示:

  curl -H "Authorization: Bearer $(gcloud auth print-access-token)"  \
  -H "x-goog-user-project: PROJECT_ID" \
  "https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/recommenders/google.firestore.database.RECOMMENDER/recommendations"

替换以下内容:

  • PROJECT_ID:您的项目 ID。
  • LOCATION:区域,例如 us-central1
  • RECOMMENDER:Recommender 的 ID,例如 FirebaseRulesRecommender

如需了解详情,请参阅使用 API - 建议

查看数据分析

您可以通过多种方式查看有关 Firestore 安全规则的数据分析和详细建议。

gcloud CLI

如需使用 gcloud 查看数据分析,请运行 gcloud recommender insights list 命令,如下所示:

  gcloud recommender insights list \
  --project=PROJECT_ID \
  --location=LOCATION \
  --insight-type=google.firestore.database.INSIGHT_TYPE

替换以下内容:

  • PROJECT_ID:您的项目 ID。
  • LOCATION:区域,例如 us-central1
  • INSIGHT_TYPE:数据分析类型的 ID,指定为 FirebaseRulesInsight

Recommender API

如需使用 Recommender API 列出数据分析,请运行以下命令:

curl -H "Authorization: Bearer $(gcloud auth print-access-token)"  \

"https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.firestore.database.INSIGHT_TYPE/insights"

替换以下内容:

  • PROJECT_ID:您的项目 ID。
  • LOCATION:区域,例如 us-central1
  • INSIGHT_TYPE:数据分析类型的 ID,指定为 FirebaseRulesInsight

如需了解详情,请参阅使用 API - 数据分析

采纳建议

如需详细了解如何提高数据库安全性,请参阅设计安全规则结构

价格

Firestore 安全规则建议和数据分析是免费提供的。如需了解其他价格层级,请参阅 Recommender 价格