与我们于 10 月 8-10 日在纽约市一起学习最新的 GraphQL Federation 和 API 平台工程技巧、趋势和新闻。携手参加 2024 年纽约市的 GraphQL 大会
文档
免费开始

Amazon VPC Lattice 管理

监视、限制和删除对子图的访问


目前处于邀请制预览。 如需申请访问权限或提出任何疑问和反馈,请不要犹豫联系我们

本指南涵盖了以下内容

  • 如何监控通过Amazon VPC Lattice流向您的的流量。
  • 如何为您的添加访问限制。
  • 如何移除对您的子图的访问权限。

💡 提示

如果您尚未配置Amazon VPC Lattice或需要添加新的子图,请按照配置指南进行操作。

Amazon VPC Lattice监控

为了确认流量是否流向您的,您可以使用Amazon VPC Lattice生成的指标和访问日志:

  1. 登录到您选择的AWS控制台区域,并前往VPC服务页面。
  2. 在左侧导航中向下滚动并打开VPC Lattice > 服务
  3. 单击相关子图使用的Lattice服务。
  4. 单击监控选项卡。

从那里,您可以为Amazon VPC Lattice服务配置和启用访问日志。

Amazon VPC Lattice access logs

使用指标选项卡可以快速查看流向您的私有子图的流量。

Amazon VPC Lattice metrics

您还可以使用Amazon VPC Lattice生成的Amazon CloudWatch指标设置仪表板和警报,以了解您的私有子图的健康状况。

进一步限制访问

一旦配置Amazon VPC Lattice服务以接受GraphOS的流量,它就被多个安全层所保护:

  • Amazon VPC Lattice服务网络仅允许通过HTTPS拥有有效签名的流量。
  • Lattice服务的配置授权策略仅允许从Apollo AWS账户的流量。 (这是在创建Lattice服务时步骤6配置的授权策略
  • GraphOS云路由器配置比较超图中的子图配置与Apollo账户中已知私有子图的列表。它拒绝创建或更新包含未知私有子图的云路由器。
  • 只能调用其超图配置中列出的私有子图。

您还可以通过配置服务授权策略中的附加条件来进一步限制对您的私有子图的访问。具体来说,您可以添加条件来限制基于您组织的Apollo账户ID或您的的流量。

更新Lattice服务授权策略

要更新Lattice服务的授权策略,您首先需要Apollo账户ID和/或图引用,以便限制子图的访问。

获取账户ID和图引用

  • 联系您的Apollo联系人以获取账户ID。指定您需要账户ID来更新Lattice服务的授权策略。

    注意事项

    您在授权策略中指定的Apollo账户ID不是您在中可以找到的GraphOS组织ID。

  • 您可以在Apollo账户中找到您的超图的图引用:

    • 登录到GraphOS Studio
    • 页面上的上点击。图引用位于页面顶部。

如果您想向多个或GraphOS账户提供子图访问,请在更新策略时指定多个和账户ID。

更新策略

如果您正在使用 Apollo Terraform 模块,您可以设置 apollo_account_idsapollo_graph_refs 变量 以更新您的授权策略。请提供一些 Apollo 账户 ID 或 graph refs

apollo_account_ids = ["my_account_id", "another_account_id"]
apollo_graph_refs = ["my-graph@my-variant", "another-graph@my-variant"]

如果您没有使用 Apollo Terraform 模块,请按照以下步骤操作

  1. 在您选择的 AWS 控制台中,前往 VPC 服务页面
  1. 在左侧导航中向下滚动,并在 服务 部分中打开 VPC Lattice 部分。
  2. 点击您想要配置授权策略的 Lattice 服务。
  3. 服务访问 部分,更新您的授权策略。您可以使用以下内容作为示例——确保用您自己的账户 ID 和 graph ref 替换。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "vpc-lattice-svcs:Invoke",
"Resource": "*",
"Condition": {
"ForAnyValue:StringLike": {
"aws:PrincipalOrgPaths": "o-9vaxczew6u/*/ou-leyb-l9pccq2t/ou-leyb-fvqz35yo/*"
},
// Restrict traffic based on Apollo account IDs or graphRefs
"StringEquals": {
"aws:PrincipalTag/Apollo:accountId": "my_account_id_xezf34",
"aws:PrincipalTag/Apollo:graphRef": "my-graph@my-variant"
}
}
}
]
}

如果多个 supergraphs 应该可以访问 subgraph,请使用逗号分隔的 graph refs 字符串作为 aws:PrincipalTag/Apollo:graphRef。例如:

"aws:PrincipalTag/Apollo:graphRef": "my-graph@my-variant, my-graph@another-variant, another-graph@another-variant"

类似地,您可以使用逗号分隔的账户ID作为 aws:PrincipalTag/Apollo:accountId

"aws:PrincipalTag/Apollo:accountId": "my_account_id_xezf34", "my_account_id_dehs56"

移除访问权限

为了移除 GraphOS 对私有子图的访问权限,您必须移除资源共享和服务网络关联。请注意,一旦移除访问权限,任何现有的 supergraphs 发送到您的私有子图的流量将停止工作。

移除资源共享

  1. 在您选择的区域的 AWS 控制台中,转到资源访问管理器服务页面
  1. 在左侧导航中,点击 资源共享 中的 由我所共享 部分。
  2. 选择与 Apollo AWS 组织关联的资源共享。然后点击右上角的 删除 按钮。
  3. 在出现的对话框中,点击 删除

移除服务网络关联

  1. 在您选择的 AWS 控制台中,前往 VPC 服务页面
  1. 在左侧导航中向下滚动,并在 服务 部分中打开 VPC Lattice 部分。
  2. 点击您要断开连接的 Lattice 服务。
  3. 服务网络关联 中,选择 graphos-cloud 服务名称。
Amazon VPC service page
  1. 点击该部分右上角的 操作 按钮。然后,点击 删除网络关联
Amazon VPC service page
  1. 按照确认说明操作,并点击 删除

删除网络关联可能需要几秒钟的时间。一旦删除了网络关联, GraphOS 将无法再联系您的子图。

上一页
配置
下一页
故障排除
评分文章评分在GitHub上编辑编辑论坛Discord

©2024Apollo Graph Inc.,以Apollo GraphQL为交易名。

隐私政策

公司