防止跨服务混淆代理 - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink 之前称为 Amazon Kinesis Data Analytics for Apache Flink。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

防止跨服务混淆代理

在 AWS 中,当一个服务(调用服务)调用另一服务(被调用服务)时,可能会发生跨服务模拟。尽管调用服务不应具有适当的权限,但仍可操纵以对另一个客户的资源进行操作,这会导致代理混淆。

为了防止混淆代理,AWS 提供响应的工具,帮助您保护所有服务的服务委托人数据,这些服务委托人有权限访问账户中的资源。本节重点介绍 Managed Service for Apache Flink 特有的跨服务代理混淆预防事宜,但是,您可以在 IAM 用户指南代理混淆问题部分了解有关此主题的更多信息。

在适用于 Apache Flink 的托管服务环境中,我们建议在角色信任策略中使用 aws: SourceArn 和 aws: SourceAccount 全局条件上下文密钥,将对角色的访问权限限制为仅限由预期资源生成的请求。

如果您只希望将一个资源与跨服务访问相关联,请使用 aws:SourceArn。如果您想允许该账户中的任何资源与跨服务使用操作相关联,请使用 aws:SourceAccount

aws:SourceArn 的值必须是 Managed Service for Apache Flink 使用的资源 ARN,该资源使用以下格式指定:arn:aws:kinesisanalytics:region:account:resource

解决代理混淆问题的推荐方法,是将 aws:SourceArn 全局条件上下文键与完整资源 ARN 结合使用。

如果不知道资源的完整 ARN,或者正在指定多个资源,请针对 ARN 未知部分使用带有通配符 (*) 的 aws:SourceArn 键。例如:arn:aws:kinesisanalytics::111122223333:*

您向 Managed Service for Apache Flink 提供的角色策略以及为您生成的角色的信任策略都可以使用这些密钥。

为了防止出现代理混淆的问题,请执行以下步骤:

防止出现代理混淆问题
  1. 登录 AWS 管理控制台,并通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 选择角色,然后选择要修改的角色。

  3. 选择编辑信任策略

  4. 编辑信任策略页面上,将默认 JSON 策略替换为使用 aws:SourceArnaws:SourceAccount 全局条件上下文密钥中的一个或两个的策略。请参阅以下示例策略:

  5. 选择更新策略

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"kinesisanalytics.amazonaws.com" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "aws:SourceAccount":"Account ID" }, "ArnEquals":{ "aws:SourceArn":"arn:aws:kinesisanalytics:us-east-1:123456789012:application/my-app" } } } ] }