本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon Fraud Detector 基于身份的策略示例
默认情况下,用户和IAM角色无权创建或修改 Amazon Fraud Detector 资源。他们也无法使用执行任务 AWS Management Console, AWS CLI,或 AWS API。管理员必须创建IAM策略,授予用户和角色对其所需的指定资源执行特定API操作的权限。然后,管理员必须将这些策略附加到需要这些权限的用户或组。
要了解如何使用这些示例JSON策略文档创建IAM基于身份的策略,请参阅《IAM用户指南》JSON中的 “在选项卡上创建策略”。
主题
策略最佳实践
基于身份的策略决定了某人是否可以在您的账户中创建、访问或删除 Amazon Fraud Detector 资源。这些操作可能会使您付出代价 AWS 账户。 创建或编辑基于身份的策略时,请遵循以下准则和建议:
-
开始使用 AWS 托管策略并转向最低权限权限 — 要开始向用户和工作负载授予权限,请使用 AWS 为许多常见用例授予权限的托管策略。它们在你的 AWS 账户。 我们建议您通过定义来进一步减少权限 AWS 特定于您的用例的客户托管政策。有关更多信息,请参阅 AWS 托管策略或 AWS《IAM用户指南》中工作职能的托管策略。
-
应用最低权限权限-使用IAM策略设置权限时,仅授予执行任务所需的权限。为此,您可以定义在特定条件下可以对特定资源执行的操作,也称为最低权限许可。有关使用应用权限IAM的更多信息,请参阅IAM用户指南IAM中的策略和权限。
-
使用IAM策略中的条件进一步限制访问权限-您可以在策略中添加条件以限制对操作和资源的访问权限。例如,您可以编写一个策略条件来指定所有请求都必须使用发送SSL。如果通过特定条件使用服务操作,则也可以使用条件来授予对服务操作的访问权限 AWS 服务之外的压缩算法(例如 AWS CloudFormation。 有关更多信息,请参阅《IAM用户指南》中的IAMJSON策略元素:条件。
-
使用 A IAM ccess Analyzer 验证您的IAM策略以确保权限的安全性和功能性 — A IAM ccess Analyzer 会验证新的和现有的策略,以便策略符合IAM策略语言 (JSON) 和IAM最佳实践。IAMAccess Analyzer 提供了 100 多项策略检查和可行的建议,可帮助您制定安全和实用的策略。有关更多信息,请参阅《IAM用户指南》中的 IAMAccess Analyzer 策略验证。
-
需要多因素身份验证 (MFA)-如果您的场景需要IAM用户或 root 用户 AWS 账户,请打开MFA以提高安全性。要要求MFA何时调用API操作,请在策略中添加MFA条件。有关更多信息,请参阅《IAM用户指南》中的配置MFA受保护的API访问权限。
有关中最佳做法的更多信息IAM,请参阅《IAM用户指南》IAM中的安全最佳实践。
AWS-Amazon Fraud Detector 的托管(预定义)政策
AWS 通过提供由创建和管理的独立IAM策略来解决许多常见用例 AWS。 这些 AWS 托管策略为常见用例授予必要的权限,这样您就可以不必调查需要哪些权限。有关更多信息,请参阅《中的AWS托管策略》AWS Identity and Access Management 管理用户指南。
以下 AWS 您可以将托管政策附加到账户中的用户,该政策特定于 Amazon Fraud Detector:
AmazonFraudDetectorFullAccess
: 授予对 Amazon Fraud Detector 资源、操作和支持的操作的完全访问权限,包括:
列出并描述 Amazon 中的所有型号终端节点 SageMaker
列出账户中的所有IAM角色
列出所有 Amazon S3 存储桶
允许 IAM Pass Role 将角色传递给 Amazon Fraud Detector
此策略不提供不受限制的 S3 访问权限。如果您需要将模型训练数据集上传到 S3,则还需要AmazonS3FullAccess
托管策略(或范围缩小的自定义 Amazon S3 访问策略)。
您可以登录IAM控制台并按策略名称进行搜索来查看策略的权限。您也可以创建自己的自定义IAM策略,根据需要授予对 Amazon Fraud Detector 操作和资源的权限。您可以将这些自定义策略附加到需要它们的用户或组。
允许用户查看他们自己的权限
此示例说明如何创建允许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": "*" } ] }
允许完全访问亚马逊 Fraud Detector 资源
以下示例给出了您的用户 AWS 账户 完全访问所有 Amazon Fraud Detector 资源和操作。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "frauddetector:*" ], "Resource": "*" } ] }
允许对 Amazon Fraud Detector 资源进行只读访问
在此示例中,您向用户授予了您的 AWS 账户 对您的 Amazon Fraud Detector 资源的只读访问权限。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "frauddetector:GetEventTypes", "frauddetector:BatchGetVariable", "frauddetector:DescribeDetector", "frauddetector:GetModelVersion", "frauddetector:GetEventPrediction", "frauddetector:GetExternalModels", "frauddetector:GetLabels", "frauddetector:GetVariables", "frauddetector:GetDetectors", "frauddetector:GetRules", "frauddetector:ListTagsForResource", "frauddetector:GetKMSEncryptionKey", "frauddetector:DescribeModelVersions", "frauddetector:GetDetectorVersion", "frauddetector:GetPrediction", "frauddetector:GetOutcomes", "frauddetector:GetEntityTypes", "frauddetector:GetModels" ], "Resource": "*" } ] }
允许访问特定资源
在此资源级策略示例中,您向用户授予的权限是 AWS 账户 访问除一个特定的探测器资源之外的所有操作和资源。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "frauddetector:*" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "frauddetector:*Detector" ], "Resource": "arn:${Partition}:frauddetector:${Region}:${Account}:detector/${detector-name}" } ] }
使用双模式时允许访问特定资源 API
Amazon Fraud Detector 提供双模式APIs,可以同时使用 “列表” 和 “描述” 操作。在不带任何参数的情况下调用双模式API时,会返回与您的关联的指定资源的列表 AWS 账户。 API当使用参数调用双模式时,会返回指定资源的详细信息。资源可以是模型、变量、事件类型或实体类型。
双模式APIs支持策略中的资源级权限。IAM但是,只有在请求中提供一个或多个参数时,才会应用资源级别权限。例如,如果用户调用GetVariablesAPI并提供变量名,如果变量资源或变量名附加了IAM拒绝策略,则用户将收到AccessDeniedException
错误消息。如果用户调用GetVariables
API但未指定变量名,则会返回所有变量,这可能会导致信息泄露。
要仅允许用户查看特定资源的详细信息,请在 “IAM拒绝” IAM NotResource
策略中使用策略元素。将此策略元素添加到 “IAM拒绝” 策略后,用户只能查看NotResource
区块中指定的资源的详细信息。有关更多信息,请参阅《IAM用户指南》 NotResource中的IAMJSON策略元素:。
以下示例策略允许用户访问 Amazon Fraud Detector 的所有资源。但是,p NotResource
olicy 元素用于将GetVariablesAPI调用限制为仅限前缀为user*
job_*
、和var*
的变量名。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "frauddetector:*", "Resource": "*" }, { "Effect": "Deny", "Action": "frauddetector:GetVariables", "NotResource": [ "arn:aws:frauddetector:*:*:variable/user*", "arn:aws:frauddetector:*:*:variable/job_*", "arn:aws:frauddetector:*:*:variable/var*" ] } ] }
响应
对于此示例策略,响应表现出以下行为:
不包含变量名的 GetVariables 调用会导致
AccessDeniedException
错误,因为该请求映射到 Deny 语句。如果 GetVariables 调用包含不允许的变量名,则会导致
AccessDeniedException
错误,因为变量名未映射到NotResource
块中的变量名。例如,使用变量名的 GetVariables 调用会email_address
导致AccessDeniedException
错误。如果 GetVariables 调用包含与
NotResource
块中的变量名相匹配的变量名,则按预期返回。例如,包含变量名的 GetVariables 调用job_cpa
会返回job_cpa
变量的详细信息。
根据标签限制访问权限
此示例策略演示了如何根据资源标签限制对 Amazon Fraud Detector 的访问权限。此示例假设:
在你的 AWS 账户 你定义了两个不同的小组,分别是 Team1 和 Team2
您已经创建了四个探测器
你想允许 Team1 的成员通过 2 个探测API器拨打电话
你想允许 Team2 的成员通过其他 2 个API探测器拨打电话
控制对API呼叫的访问权限(示例)
向 Team1 使用的探测器添加带有密钥
Project
和值A
的标签。向 Team2 使用的探测器添加带有键
Project
和值B
的标签。创建具有拒绝访问带有键
Project
和值标签的检测器的ResourceTag
条件的IAM策略B
,并将该策略附加到 Team1。创建具有拒绝访问带有键
Project
和值标签的检测器的ResourceTag
条件的IAM策略A
,并将该策略附加到 Team2。
以下是一个政策示例,该政策拒绝对任何带有密钥为Project
且值为的标签的 Amazon Fraud Detector 资源执行特定操作B
:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "frauddetector:*", "Resource": "*" }, { "Effect": "Deny", "Action": [ "frauddetector:CreateModel", "frauddetector:CancelBatchPredictionJob", "frauddetector:CreateBatchPredictionJob", "frauddetector:DeleteBatchPredictionJob", "frauddetector:DeleteDetector" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/Project": "B" } } } ] }