Amazon Personalize 基于身份的策略示例 - Amazon Personalize
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

Amazon Personalize 基于身份的策略示例

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

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

策略最佳实践

基于身份的策略非常强大。它们确定某个人是否可以创建、访问或删除您账户中的 Amazon Personalize 资源。这些操作可能会在您的 AWS 账户中产生费用。创建或编辑基于身份的策略时,请遵循以下准则和建议:

  • 开始使用 AWS 托管策略— 要快速开始使用 Amazon Personalize Greate,请使用 AWS 托管策略为您的员工提供所需的权限。已在您的账户中提供这些策略,并由 AWS 进行维护和更新。有关更多信息,请参阅 。通过 AWS 托管策略开始使用权限中的IAM 用户指南

  • 授予最低权限 – 创建自定义策略时,仅授予执行任务所需的许可。最开始只授予最低权限,然后根据需要授予其他权限。这样做比起一开始就授予过于宽松的权限而后再尝试收紧权限来说更为安全。有关更多信息,请参阅 。授予最低权限中的IAM 用户指南

  • 为敏感操作启用 MFA – 为了提高安全性,要求 IAM 用户使用多重验证 (MFA) 访问敏感资源或 API 操作。有关更多信息,请参阅 。在 AWS 中使用多重身份验证 (MFA)中的IAM 用户指南

  • 使用策略条件来增强安全性 – 在切实可行的范围内,定义基于身份的策略在哪些情况下允许访问资源。例如,您可编写条件来指定请求必须来自允许的 IP 地址范围。您也可以编写条件,以便仅允许指定日期或时间范围内的请求,或者要求使用 SSL 或 MFA。有关更多信息,请参阅 。IAM JSON 策略元素:Condition中的IAM 用户指南

AWS 托管策略

AWS 托管策略是 AWS 创建和管理的策略。以下是您可以附加到您的 IAM 用户或组以授予 Amazon Personalize 权限的 AWS 托管策略示例。

有关将策略附加到用户的信息,请参阅更改 IAM 用户的权限中的IAM 用户指南。有关将策略附加到组的信息,请参阅将策略附加到 IAM 组中的IAM 用户指南

AmazonPersonalizeFullAccess 策略

无需创建新策略,您可以附加 AWS 托管AmazonPersonalizeFullAccess策略提供给 IAM 用户和角色。然而,AmazonPersonalizeFullAccess提供的权限超出使用 Amazon Personalize 所需的权限。

而不是使用AmazonPersonalizeFullAccess策略,我们建议创建一个仅授予必要权限的新 IAM 策略(请参阅创建新的 IAM 策略)。

这些区域有:AmazonPersonalizeFullAccess策略允许 IAM 用户执行以下操作:

  • 访问所有 Amazon Personalize 资源

  • 在 Amazon CloudWatch 上发布和列出指标

  • 列出、读取、写入和删除 Amazon S3 存储桶中包含的所有对象Personalize或者personalize存储桶名称中的

  • 将角色传递给 Amazon Personalize

CloudWatchFullAccess

要授予用户使用 CloudWatch 监控 Amazon Personalize 功能的权限,请将CloudWatchFullAccess策略添加到 Amazon Personalize IAM 用户或组。有关更多信息,请参阅 监控 Amazon Personalize

这些区域有:CloudWatchFullAccess策略是可选的,并允许 IAM 用户执行以下操作:

  • 在 CloudWatch 中发布和列出 Amazon Personalize 指标

  • 查看指标和指标统计信息。

  • 设置基于指标的警报。

使用 Amazon Personalize 控制台

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

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

AWSPersonalizeConsoleAccess

对于仅调用 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 Personalize 资源的完全访问

以下示例为您的 AWS 账户中的 IAM 用户授予了对所有 Amazon Personalize 资源和操作的完全访问权限。

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

允许对 Amazon 个性化资源进行只读访问

在此示例中,您向 AWS 账户中的 IAM 用户授予了对 Amazon Protecation 资源(包括 Amazon Vitality 数据集、数据集组、解决方案和市场活动)的只读访问权限。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "personalize:DescribeAlgorithm", "personalize:DescribeBatchInferenceJob", "personalize:DescribeCampaign", "personalize:DescribeDataset", "personalize:DescribeDatasetGroup", "personalize:DescribeDatasetImportJob", "personalize:DescribeDatasetImportJobRun", "personalize:DescribeEventTracker", "personalize:DescribeFeatureExportJob", "personalize:DescribeFeatureTransformation", "personalize:DescribeRecipe", "personalize:DescribeSchema", "personalize:DescribeSolution", "personalize:DescribeSolutionVersion", "personalize:GetSolutionMetrics", "personalize:ListBatchInferenceJobs", "personalize:ListCampaigns", "personalize:ListDatasetGroups", "personalize:ListDatasetImportJobs", "personalize:ListDatasets", "personalize:ListEventTrackers", "personalize:ListRecipes", "personalize:ListSchemas", "personalize:ListSolutions", "personalize:ListSolutionVersions" ], "Resource": "*" } ] }