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

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

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

防止跨服务混淆代理

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

为了防止众议员感到困惑,我们 AWS 提供了一些工具,这些工具可帮助您使用已获准访问您账户中资源的服务委托人保护所有服务的数据。本节重点介绍 Apache Flink 托管服务特有的跨服务混淆副手预防,但是,你可以在《用户指南》的 “混淆副手问题” 部分了解有关此主题的IAM更多信息。

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

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

的值aws:SourceArn必须是 Apache Flink 托管服务使用的资源值,该资源使用以下格式指定:。ARN arn:aws:kinesisanalytics:region:account:resource

解决混乱的副手问题的推荐方法是使用全aws:SourceArn局条件上下文密钥和全部资源ARN。

如果您不知道资源的全部ARN内容,或者要指定多个资源,请使用带有通配符 (*) 的aws:SourceArn密钥来表示未知部分。ARN例如:arn:aws:kinesisanalytics::111122223333:*

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

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

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

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

  3. 选择编辑信任策略

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

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