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

Macie 基于身份的策略示例

默认情况下,用户和角色没有创建或修改 Macie 资源的权限。他们也无法使用 AWS Management Console、AWS Command Line Interface(AWS CLI)或 AWS API 执行任务。要授予用户对所需资源执行操作的权限,IAM 管理员可以创建 IAM 策略。管理员随后可以向角色添加 IAM 策略,用户可以代入角色。

要了解如何使用这些示例 JSON 策略文档创建基于 IAM 身份的策略,请参阅《IAM 用户指南》中的创建 IAM 策略(控制台)

有关 Macie 定义的操作和资源类型的详细信息,包括每种资源类型的 ARN 格式,请参阅服务授权参考中的 Amazon Macie 的操作、资源和条件密钥

创建策略时,请务必先解决来自 AWS Identity and Access Management Access Analyzer (IAM Access Analyzer) 的安全警告、错误、一般警告和建议,然后再保存策略。IAM Access Analyzer 将根据 IAM 策略语法最佳实践运行策略检查,以验证您的策略。这些检查项生成结果并提供可操作的建议,可帮助您编写可操作且符合安全最佳实践的策略。要了解通过使用 IAM Access Analyzer 验证策略,请参阅 IAM 用户指南中的 IAM Access Analyzer 策略验证。要查看 IAM Access Analyzer 可以返回的警告、错误和建议列表,请参阅 IAM 用户指南中的 IAM Access Analyzer 策略检查参考

策略最佳实践

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

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

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

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

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

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

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

使用 Amazon Macie 控制台

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

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

为确保用户和角色可以使用 Amazon Macie 控制台,请创建为他们提供控制台访问权限的 IAM 策略。有关更多信息,请参阅《IAM 用户指南》中的 IAM 中的策略和权限

如果您创建的策略允许用户或角色使用 Amazon Macie 控制台,请确保该策略允许执行 macie2:GetMacieSession 操作。否则,这些用户或角色将无法访问控制台上的任何 Macie 资源或数据。

另请确保该策略允许为这些用户或角色需要在控制台上访问的资源执行适当的 macie2:List 操作。否则,他们将无法在控制台上导航到这些资源或显示有关这些资源的详细信息。例如,要通过使用控制台查看敏感数据发现作业的详细信息,必须允许用户为该作业执行 macie2:DescribeClassificationJob 操作以及执行 macie2:ListClassificationJobs 操作。如果不允许用户执行 macie2:ListClassificationJobs 操作,则该用户将无法在控制台的作业页面上显示作业列表,因此将无法选择作业来显示其详细信息。要使详细信息包括有关作业使用的自定义数据标识符的信息,还必须允许用户为自定义数据标识符执行 macie2:BatchGetCustomDataIdentifiers 操作。

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

该示例说明了您如何创建策略,以允许 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": "*" } ] }

示例:允许用户创建敏感数据发现作业

此示例展示如何创建允许用户创建敏感数据发现作业的策略。

在示例中,第一条语句向用户授予 macie2:CreateClassificationJob 权限。这些权限允许用户创建作业。该语句还授予 macie2:DescribeClassificationJob 权限。这些权限允许用户访问现有作业的详细信息。尽管创建作业不需要这些权限,但访问这些详细信息可以帮助用户创建具有唯一配置设置的作业。

示例中的第二条语句允许用户通过使用 Amazon Macie 控制台来创建、配置和查看作业。这些 macie2:ListClassificationJobs 权限允许用户在控制台的作业页面上显示现有作业。语句中的所有其他权限允许用户通过使用控制台上的创建作业页面来配置和创建作业。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateAndReviewJobs", "Effect": "Allow", "Action": [ "macie2:CreateClassificationJob", "macie2:DescribeClassificationJob" ], "Resource": "arn:aws:macie2:*:*:classification-job/*" }, { "Sid": "CreateAndReviewJobsOnConsole", "Effect": "Allow", "Action": [ "macie2:ListClassificationJobs", "macie2:ListAllowLists", "macie2:ListCustomDataIdentifiers", "macie2:ListManagedDataIdentifiers", "macie2:SearchResources", "macie2:DescribeBuckets" ], "Resource": "*" } ] }

示例:允许用户管理敏感数据发现作业

此示例展示如何创建策略,以允许用户访问特定敏感数据发现作业(该作业 ID 为 3ce05dbb7ec5505def334104bexample)的详细信息。该示例还允许用户根据需要更改作业的状态。

在示例中,第一条语句向用户授予 macie2:DescribeClassificationJobmacie2:UpdateClassificationJob 权限。这些权限分别允许用户检索作业的详细信息和更改作业的状态。第二条语句向用户授予 macie2:ListClassificationJobs 权限,允许用户通过使用 Amazon Macie 控制台上的作业页面访问作业。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageOneJob", "Effect": "Allow", "Action": [ "macie2:DescribeClassificationJob", "macie2:UpdateClassificationJob" ], "Resource": "arn:aws:macie2:*:*:classification-job/3ce05dbb7ec5505def334104bexample" }, { "Sid": "ListJobsOnConsole", "Effect": "Allow", "Action": "macie2:ListClassificationJobs", "Resource": "*" } ] }

您也可以允许用户访问 Macie 为该作业发布到 Amazon CloudWatch Logs 的记录数据(日志事件)。为此,您可以添加语句,授予对作业的日志组和流执行 CloudWatch Logs (logs) 操作的权限。例如:

"Statement": [ { "Sid": "AccessLogGroupForMacieJobs", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": "arn:aws:logs:*:*:log-group:aws/macie/classificationjobs" }, { "Sid": "AccessLogEventsForOneMacieJob", "Effect": "Allow", "Action": "logs:GetLogEvents", "Resource": [ "arn:aws:logs:*:*:log-group:aws/macie/classificationjobs/*", "arn:aws:logs:*:*:log-group:aws/macie/classificationjobs:log-stream:3ce05dbb7ec5505def334104bexample" ] } ]

有关管理对 CloudWatch Logs 的访问的信息,请参阅 Amazon CloudWatch Logs 用户指南中的管理对 CloudWatch Logs 资源的访问权限的概述

示例:允许用户查看调查发现

此示例展示如何创建允许用户访问调查发现数据的策略。

在此示例中,macie2:GetFindingsmacie2:GetFindingStatistics 权限允许用户通过使用 Amazon Macie API 或 Amazon Macie 控制台来检索数据。这些 macie2:ListFindings 权限允许用户通过使用 Amazon Macie 控制台上的摘要控制面板和调查发现页面来检索和查看数据。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReviewFindings", "Effect": "Allow", "Action": [ "macie2:GetFindings", "macie2:GetFindingStatistics", "macie2:ListFindings" ], "Resource": "*" } ] }

您也可以允许用户为调查发现创建和管理筛选规则和抑制规则。为此,您可以包括一条语句来授予以下权限:macie2:CreateFindingsFiltermacie2:GetFindingsFiltermacie2:UpdateFindingsFiltermacie2:DeleteFindingsFilter。要允许用户通过使用 Amazon Macie 控制台来管理规则,还需要在策略中包括 macie2:ListFindingsFilters 权限。例如:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReviewFindings", "Effect": "Allow", "Action": [ "macie2:GetFindings", "macie2:GetFindingStatistics", "macie2:ListFindings" ], "Resource": "*" }, { "Sid": "ManageRules", "Effect": "Allow", "Action": [ "macie2:GetFindingsFilter", "macie2:UpdateFindingsFilter", "macie2:CreateFindingsFilter", "macie2:DeleteFindingsFilter" ], "Resource": "arn:aws:macie2:*:*:findings-filter/*" }, { "Sid": "ListRulesOnConsole", "Effect": "Allow", "Action": "macie2:ListFindingsFilters", "Resource": "*" } ] }

示例:允许用户查看基于标签的自定义数据标识符

在基于身份的策略中,您可以使用条件根据标签控制对 Amazon Macie 资源的访问。此示例展示如何创建策略,用以允许用户通过使用 Amazon Macie 控制台或 Amazon Macie API 来查看自定义数据标识符。但是,仅当Owner标签的值为用户的用户名时才会授予权限。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReviewCustomDataIdentifiersIfOwner", "Effect": "Allow", "Action": "macie2:GetCustomDataIdentifier", "Resource": "arn:aws:macie2:*:*:custom-data-identifier/*", "Condition": { "StringEquals": {"aws:ResourceTag/Owner": "${aws:username}"} } }, { "Sid": "ListCustomDataIdentifiersOnConsoleIfOwner", "Effect": "Allow", "Action": "macie2:ListCustomDataIdentifiers", "Resource": "*", "Condition": { "StringEquals": {"aws:ResourceTag/Owner": "${aws:username}"} } } ] }

在此示例中,如果拥有用户名 richard-roe 的用户尝试查看自定义数据标识符的详细信息,则必须将自定义数据标识符标记为 Owner=richard-roeowner=richard-roe。否则,该用户将被拒绝访问。条件标签密钥 OwnerOwnerowner 都匹配,因为条件密钥名称不区分大小写。有关更多信息,请参阅《IAM 用户指南》中的 IAM JSON 策略元素:条件