本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
允许 Macie 访问 S3 存储桶和对象
当你为你启用 Amazon Macie 时 AWS 账户,Macie 会创建一个服务相关角色,该角色授予 Macie 代表你调用亚马逊简单存储服务 (Amazon S3) 和其他服务所需的权限。 AWS 服务 服务相关角色简化了设置的过程, AWS 服务 因为您不必手动添加服务权限即可代表您完成操作。要了解此类角色,请参阅《AWS Identity and Access Management 用户指南》中的IAM角色。
Macie 服务相关角色 (AWSServiceRoleForAmazonMacie
) 的权限策略允许 Macie 执行操作,包括检索有关您的 S3 存储桶和对象的信息,以及从您的存储桶中检索对象。如果您是组织的 Macie 管理员,则此策略还允许 Macie 代表您组织中的成员账户执行以下作业。
Macie 使用这些权限执行以下作业:
-
生成并维护 S3 通用存储桶的清单。
-
提供有关存储桶和存储桶中对象的统计数据和其他数据。
-
监控和评估存储桶的安全性和访问控制。
-
分析存储桶中的对象以检测敏感数据。
在大多数情况下,Macie 拥有执行这些作业所需的权限。但是,如果 S3 存储桶具有限制性存储桶策略,则该策略可能会阻止 Macie 执行部分或全部作业。
存储桶策略是一种基于资源的 AWS Identity and Access Management (IAM) 策略,它指定委托人(用户、账户、服务或其他实体)可以对 S3 存储桶执行哪些操作,以及委托人可以在哪些条件下执行这些操作。这些操作和条件可能适用于存储桶级别的操作(例如检索有关存储桶的信息)和对象级操作(例如从存储桶中检索对象)。
存储桶策略通常使用显式 Allow
或 Deny
语句和条件来授予或限制访问权限。例如,存储桶策略可能包含拒绝访问存储桶的Allow
或Deny
语句,除非使用特定的源 IP 地址、Amazon Virtual Private Cloud (AmazonVPC) 终端节点或VPCs用于访问存储桶。有关使用存储桶策略授予或限制对存储桶的访问权限的信息,请参阅《亚马逊简单存储服务用户指南》中的 Amazon S3 存储桶策略和 Ama zon S3 如何授权请求。
如果存储桶策略使用显式 Allow
语句,该策略不会阻止 Macie 检索有关存储桶和存储桶对象的信息,或从存储桶中检索对象。这是因为 Macie 服务相关角色的权限策略中的 Allow
语句授予了这些权限。
但是,如果存储桶策略使用带有一个或多个条件的显式 Deny
语句,则可能不允许 Macie 检索有关存储桶或存储桶对象的信息,也不允许检索存储桶的对象。例如,如果存储桶策略明确拒绝来自除特定 IP 地址之外的所有来源的访问,则在您运行敏感数据发现作业时,将不允许 Macie 分析存储桶的对象。这是因为限制性存储桶策略优先于 Macie 服务相关角色的权限策略中的 Allow
语句。
要允许 Macie 访问具有限制性存储桶策略的 S3 存储桶,您可以在存储桶策略中添加 Macie 服务相关角色的条件 (AWSServiceRoleForAmazonMacie
)。该条件可以将 Macie 服务相关角色排除在与策略 Deny
限制的匹配范围之外。它可以通过使用 Macie 服务相关角色的aws:PrincipalArn
全局条件上下文密钥和 Amazon 资源名称 (ARN) 来实现此目的。
下面的程序将指导您完成这一过程,并提供了一个示例。
将 Macie 服务相关角色添加到存储桶策略中
登录 AWS Management Console 并打开 Amazon S3 控制台,网址为https://console.aws.amazon.com/s3/
。 -
在导航窗格中,选择桶。
-
请选择要允许 Macie 访问的 S3 存储桶。
-
在 Permissions(权限)标签页中,在 Bucket policy(存储桶策略)下,请选择 Edit(编辑)。
-
在 存储桶策略编辑器中,标识限制访问权限并阻止 Macie 访问存储桶或存储桶对象的每条
Deny
语句。 -
在每条
Deny
语句中,添加一个使用aws:PrincipalArn
全局条件上下文密钥ARN的条件,并为你指定 Macie 服务相关角色的条件。 AWS 账户条件键的值应为
arn:aws:iam::
,其中123456789012
:role/aws-service-role/macie.amazonaws.com/AWSServiceRoleForAmazonMacie123456789012
是您的账户 ID AWS 账户。
将其添加到存储桶策略的位置取决于该策略当前包含的结构、元素和条件。要了解支持的结构和元素,请参阅 Amazon Simple Storage Service 用户指南中的 Amazon S3 中的策略和权限。
以下是存储桶策略的示例,该策略使用明确的Deny
语句来限制对名为的 S3 存储桶的访问amzn-s3-demo-bucket
。根据当前策略,只能从 ID 为的VPC终端节点访问存储桶vpce-1a2b3c4d
。来自所有其他VPC端点的访问均被拒绝,包括来自 AWS Management Console 和 Macie 的访问。
{
"Version": "2012-10-17",
"Id": "Policy1415115example",
"Statement": [
{
"Sid": "Access only from specific VPCE",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::amzn-s3-demo-bucket",
"arn:aws:s3:::amzn-s3-demo-bucket/*"
],
"Condition": {
"StringNotEquals": {
"aws:SourceVpce": "vpce-1a2b3c4d"
}
}
}
]
}
要更改此策略并允许 Macie 访问 S3 存储桶和存储桶的对象,我们可以添加一个使用StringNotLike
条件运算符和aws:PrincipalArn
全局条件上下文密钥的条件。此附加条件将 Macie 服务相关角色排除在与 Deny
限制的匹配范围之外。
{
"Version": "2012-10-17",
"Id":" Policy1415115example ",
"Statement": [
{
"Sid": "Access only from specific VPCE and Macie",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::amzn-s3-demo-bucket",
"arn:aws:s3:::amzn-s3-demo-bucket/*"
],
"Condition": {
"StringNotEquals": {
"aws:SourceVpce": "vpce-1a2b3c4d"
},
"StringNotLike": {
"aws:PrincipalArn": "arn:aws:iam::123456789012:role/aws-service-role/macie.amazonaws.com/AWSServiceRoleForAmazonMacie"
}
}
}
]
}
在前面的示例中,StringNotLike
条件运算符使用aws:PrincipalArn
条件上下文键来指定 Macie 服务相关角色的,其中:ARN
-
123456789012
是允许使用 Mac AWS 账户 ie 检索有关存储桶和存储桶对象的信息以及从存储桶检索对象的账户 ID。 -
macie.amazonaws.com
是 Macie 服务主体的标识符。 -
AWSServiceRoleForAmazonMacie
是 Macie 服务相关角色的名称。
我们之所以使用 StringNotLike
运算符,是因为策略已经使用了 StringNotEquals
运算符。一个策略只能使用 StringNotEquals
运算符一次。
有关管理 Amazon S3 资源访问权限的其他策略示例和详细信息,请参阅《亚马逊简单存储服务用户指南》中的访问管理。