Amazon Forecast 基于身份的策略示例 - Amazon Forecast

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

Amazon Forecast 基于身份的策略示例

默认情况下,IAM 用户和角色没有创建或修改 Forecast 资源的权限。它们还无法使用 AWS Management Console、AWS CLI 或 AWS API 执行任务。IAM 管理员必须创建 IAM policy,以便为用户和角色授予权限以对所需的指定资源执行特定的 API 操作。然后,管理员必须将这些策略附加到需要这些权限的 IAM 用户或组。

每当调用操作时,Amazon Forecast 都会对调用者的权限执行一系列身份验证检查。这些检查包括:

  • 调用者调用操作的权限已得到验证。

  • 如果在操作中提供了角色,则 Amazon Forecast 会验证 PassRole 角色的权限。

  • 如果在加密配置中提供了 KMS 密钥,那么 KMS: Decrypt 和 kms:GenerateDataKey 验证是根据调用者的权限进行的。对于在 Amazon Forecast 中执行的每个操作,此密钥可能会有所不同。你会收到一个 AccessDeniedException 如果你没有相关的权限。密钥策略应类似于以下代码:

    "Effect": "Allow", "Principal": { "AWS": “AWS Invoking Identity” }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey” ], "Resource": "*" }

要了解如何使用这些示例 JSON 策略文档创建 IAM 基于身份的策略,请参阅 IAM 用户指南 中的在 JSON 选项卡上创建策略

策略最佳实践

基于身份的策略确定某个人是否可以创建、访问或删除您账户中的 Forecast 资源。这些操作可能会使 AWS 账户 产生成本。创建或编辑基于身份的策略时,请遵循以下准则和建议:

  • AWS 托管策略及转向最低权限许可入门 - 要开始向用户和工作负载授予权限,请使用 AWS 托管策略来为许多常见使用场景授予权限。您可以在 AWS 账户 中找到这些策略。我们建议通过定义特定于您的使用场景的 AWS 客户管理型策略来进一步减少权限。有关更多信息,请参阅《IAM 用户指南》中的 AWS 托管策略工作职能的 AWS 托管策略

  • 应用最低权限 – 在使用 IAM policy 设置权限时,请仅授予执行任务所需的权限。为此,您可以定义在特定条件下可以对特定资源执行的操作,也称为最低权限许可。有关使用 IAM 应用权限的更多信息,请参阅《IAM 用户指南》中的 IAM 中的策略和权限

  • 使用 IAM policy 中的条件进一步限制访问权限 – 您可以向策略添加条件来限制对操作和资源的访问。例如,您可以编写策略条件来指定必须使用 SSL 发送所有请求。如果通过特定 AWS 服务(例如 AWS CloudFormation)使用服务操作,您还可以使用条件来授予对服务操作的访问权限。有关更多信息,请参阅 。IAM JSON 策略元素:Condition在里面IAM 用户指南.

  • 使用 IAM Access Analyzer 验证您的 IAM policy,以确保权限的安全性和功能性 – IAM Access Analyzer 会验证新策略和现有策略,以确保策略符合 IAM policy语言 (JSON) 和 IAM 最佳实践。IAM Access Analyzer 提供 100 多项策略检查和可操作的建议,以帮助您制定安全且功能性强的策略。有关更多信息,请参阅《IAM 用户指南》中的 IAM Acess Analyzer 策略验证

  • 需要多重身份验证 (MFA) – 如果您的账户需要 IAM 用户或根用户,请启用 MFA 来提高安全性。若要在调用 API 操作时需要 MFA,请将 MFA 条件添加到您的策略中。有关更多信息,请参阅《IAM 用户指南》中的配置受 MFA 保护的 API 访问

有关 IAM 中的最佳实践的更多信息,请参阅《IAM 用户指南》中的 IAM 中的安全最佳实践

使用Forecast 控制台

要访问 Amazon Forecast 控制台,您必须具有一组最低的权限。这些权限必须允许您列出和查看有关您中 Forecast 资源的详细信息AWS账户。如果您创建的基于身份的策略比所需的最低权限更严格,则无法为具有该策略的实体(IAM 用户或角色)正常运行控制台。

要确保这些实体仍可使用 Forecast 控制台,也可附加以下AWS实体的托管策略。有关更多信息,请参阅 IAM 用户指南中的为用户添加权限

AWSForecastFullAccess

以下策略授予对所有 Amazon Forecast 操作的完全访问权:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "forecast:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "forecast.amazonaws.com" } } } ] }

对于只需要调用 AWS CLI 或 AWS API 的用户,无需为其提供最低控制台权限。相反,只允许访问与您尝试执行的 API 操作相匹配的操作。

允许用户查看他们自己的权限

该示例说明了您如何创建策略,以允许 IAM 用户查看附加到其用户身份的内联和托管式策略。此策略包括在控制台上完成此操作或者以编程方式使用 AWS CLI 或 AWS API 所需的权限。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

Amazon Forecast 的 AWS 托管(预定义)策略

AWS 通过提供由 AWS 创建和管理的独立 IAM 策略来解决许多常用案例。这些 AWS 托管策略可针对常用案例授予必要的权限,使您不必调查所需权限。有关更多信息,请参阅 。AWS 托管策略在里面IAM 用户指南.

以下 AWS 托管策略(可附加到您账户中的用户)特定于 Amazon Forecast:

  • AmazonForecastFullAccess— 授予对 Amazon Forecast 资源和所有支持操作的完全访问权限。

您可以通过登录到 IAM 控制台并搜索来查看这些权限策略。

此外,您还可以创建您自己的自定义 IAM 策略,以授予 Amazon Forecast 操作和资源的相关权限。您可以将这些自定义策略附加到需要它们的 IAM 用户或组。

客户托管策略示例

本节的用户策略示例介绍如何授予各 Amazon Forecast 操作的权限。当您使用 AWS SDK 或时,可以使用这些策略AWS CLI. 使用控制台时,请参阅使用Forecast 控制台

示例 1:授予账户管理员权限

在设置账户后(请参阅注册 AWS),创建管理员用户以管理您的账户。管理员用户可以创建用户并管理其权限。

要向管理员用户授予您的账户可用的所有权限,请将以下权限策略附加到该用户:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "*", "Resource": "*" } ] }

示例 2:允许所有Amazon Forecast 和 IAM PassRole 操作

您可以选择创建一个拥有所有 Amazon Forecast 操作权限但不具有任何其他服务的权限的用户(将此用户视为服务特定管理员)。将以下权限策略附加到此用户:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "forecast:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "forecast.amazonaws.com" } } } ] }

示例 3:允许所有Amazon Forecast 操作,同时限制 IAM PassRole 操作

您可以选择创建一个拥有所有 Amazon Forecast 操作权限的用户,同时限制其 IAM PassRole 操作。将以下权限策略附加到此用户:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "forecast:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::EXAMPLE_ACCOUNT_ID_12349858:role/EXAMPLE_ROLE_TO_ALLOW_TO_PASS", "Condition": { "StringEquals": { "iam:PassedToService": "forecast.amazonaws.com" } } } ] }

示例 4:基于行动的政策:Amazon Forecast

以下策略授予允许用户列出和描述资源的 Amazon Forecast 操作权限:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "forecast:DescribeDataset", "forecast:DescribeDatasetGroup", "forecast:DescribeDatasetImportJob", "forecast:DescribeForecast", "forecast:DescribeForecastExportJob", "forecast:DescribePredictor", "forecast:ListDatasetGroups", "forecast:ListDatasetImportJobs", "forecast:ListDatasets", "forecast:ListDatasetExportJobs", "forecast:ListForecasts", "forecast:ListPredictors" ], "Resource": "*" } ] }

示例 5:允许所有带有 Pass 角色和 KMS 操作的Amazon Forecast 操作

您可以使用 Amazon Forecast 中的跨账户客户托管加密密钥创建一个拥有所有 Amazon Forecast 操作权限但无权使用任何其他服务的用户。有关更多信息,请参阅 。AWS跨账户密钥策略在里面AWS Key Management Service开发人员指南。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "forecast:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "forecast.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:iam::1234567890:key/example_key" } ] }