本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Envoy Proxy 授权
重要
终止支持通知:2026 年 9 月 30 日, Amazon 将停止对的支持。 Amazon App Mesh 2026 年 9 月 30 日之后,您将无法再访问 Amazon App Mesh 控制台或 Amazon App Mesh 资源。如需了解更多信息,请访问此博客文章从迁移 Amazon App Mesh 到 Amazon S ECS ervice Connect
代理授权授权在亚马逊ECS任务中、在亚马逊上运行的 Kubernetes 容器中或在亚马逊EKSEC2实例上运行的 En v oy 代理从 App Mesh Envoy 管理服务中读取一个或多个网状终端节点的配置。对于在 2021 年 4 月 26 日之前已将 Envoy 连接到 App Mesh 端点的客户账户,使用传输层安全 (TLS) 的虚拟节点和虚拟网关(带或不带)需要代理授权。TLS对于想要在 2021 年 4 月 26 日之后将 Envoy 连接到其 App Mesh 端点的客户账户,所有 App Mesh 功能都需要代理授权。建议所有客户账户为所有虚拟节点启用代理授权,即使他们不使用代理授权TLS,也要使用对特定资源的授权IAM获得安全一致的体验。代理授权要求在IAM策略中指定appmesh:StreamAggregatedResources
权限。该策略必须附加到某个IAM角色,并且该IAM角色必须附加到托管代理的计算资源。
创建IAM策略
如果您希望服务网格中的所有网格端点都能读取所有网格端点的配置,请跳至 创建IAM角色。如果要限制单个网格端点可以从中读取配置的网格端点,则需要创建一个或多个IAM策略。建议将可以读取配置的网格端点限制为仅在特定计算资源上运行的 Envoy 代理。创建IAM策略并将appmesh:StreamAggregatedResources
权限添加到策略中。以下示例策略允许在服务网格中读取名为 serviceBv1
和 serviceBv2
的虚拟节点的配置。无法读取服务网格中定义的任何其他虚拟节点的配置。有关创建或编辑IAM策略的更多信息,请参阅创建IAM策略和编辑IAM策略。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "appmesh:StreamAggregatedResources", "Resource": [ "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualNode/serviceBv1", "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualNode/serviceBv2" ] } ] }
您可以创建多个策略,每个策略都限制对不同网格端点的访问。
创建IAM角色
如果您希望服务网格中的所有网格端点都能读取所有网格端点的配置,则只需创建一个IAM角色即可。如果要限制单个网格端点可以从中读取配置的网格端点,则需要为在上一步中创建的每个策略创建一个角色。完成运行代理的计算资源的说明。
-
Amazon EKS — 如果您想使用单个角色,则可以使用在创建集群时创建并分配给工作节点的现有角色。要使用多个角色,您的集群必须满足在集群上为服务账户启用IAM角色中定义的要求。创建IAM角色并将这些角色与 Kubernetes 服务账号相关联。有关更多信息,请参阅为您的服务帐号创建IAM角色和策略以及为您的服务帐号指定IAM角色。
-
Amazon ECS — 选择Amazon 服务,选择弹性容器服务,然后在创建IAM角色时选择弹性容器服务任务用例。
-
Amazon EC2 — 选择Amazon 服务 EC2,选择,然后在创建IAM角色时选择EC2用例。无论您是直接在 Amazon EC2 实例上托管代理,还是在实例上运行的 Kubernetes 上托管代理,这都适用。
有关如何创建IAM角色的更多信息,请参阅为 Amazon 服务创建角色。
附加IAM政策
如果您希望服务网格中的所有网格端点都能读取所有网格端点的配置,请将AWSAppMeshEnvoyAccess
托管IAM策略附加到您在上一步中创建的IAM角色。如果要限制单个网格端点可以从中读取配置的网格端点,请将您创建的每个策略附加到您创建的每个角色上。有关为IAM角色附加自定义或托管IAM策略的更多信息,请参阅添加IAM身份权限。
附加IAM角色
将每个IAM角色附加到相应的计算资源:
-
Amazon EKS — 如果您将策略附加到工作节点的角色,则可以跳过此步骤。如果您创建了单独的角色,则将每个角色分配给单独的 Kubernetes 服务账户,并将每个服务账户分配给包含 Envoy 代理的单个 Kubernetes 容器组 (pod) 部署规范。有关更多信息,请参阅《亚马逊EKS用户指南》中的为服务账户指定IAM角色和 Kubernetes 文档中的 Pod 配置服务账户
。 -
亚马逊 ECS — 将亚马逊ECS任务角色附加到包含 Envoy 代理的任务定义中。该任务可以用EC2或 Fargate 启动类型进行部署。有关如何创建 Amazon ECS 任务角色并将其附加到任务的更多信息,请参阅为任务指定IAM角色。
-
亚马逊 EC2 — 该IAM角色必须附加到托管 Envoy 代理的亚马逊EC2实例。有关如何将角色附加到 Amazon EC2 实例的更多信息,请参阅我已经创建了一个IAM角色,现在我想将其分配给EC2实例
。
确认权限
选择其中一个计算服务名称,确认 appmesh:StreamAggregatedResources
权限已分配给托管代理的计算资源。