本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在安全湖中配置汇总区域
汇总区域整合了来自一个或多个数据提供区域的数据。指定汇总区域可以帮助您遵守区域合规性要求。
由于 Amazon S3 的限制,不支持从客户托管密钥 (CMK) 加密的区域数据湖复制到 S3 托管加密(默认加密)区域数据湖。
如果您创建了自定义源,为了确保将自定义源数据正确复制到目标,Security Lake 建议遵循采集自定义源的最佳实践中描述的最佳实践。无法对不遵循页面上描述的 S3 分区数据路径格式的数据执行复制。
在添加汇总区域之前,您首先需要在 AWS Identity and Access Management (IAM) 中创建两个不同的角色:
当您使用 Security Lake 控制台时,Security Lake 会代您创建这些 IAM 角色或使用现有角色。但是,在使用 Security Lake API 时必须创建这些角色或 AWS CLI。
用于数据复制的 IAM 角色
此 IAM 角色授予 Amazon S3 跨多个区域复制源日志和事件的权限。
要授予这些权限,请创建一个带有前缀 SecurityLake 的 IAM 角色,并将以下示例策略附加到该角色。在 Security Lake 中创建汇总区域时,您需要该角色的 Amazon 资源名称 (ARN)。在此策略中,sourceRegions 是数据提供区域,destinationRegions 是汇总区域。
- JSON
-
-
{
"Version":"2012-10-17",
"Statement": [
{
"Sid": "AllowReadS3ReplicationSetting",
"Action": [
"s3:ListBucket",
"s3:GetReplicationConfiguration",
"s3:GetObjectVersionForReplication",
"s3:GetObjectVersion",
"s3:GetObjectVersionAcl",
"s3:GetObjectVersionTagging",
"s3:GetObjectRetention",
"s3:GetObjectLegalHold"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::aws-security-data-lake-[[sourceRegions]]*",
"arn:aws:s3:::aws-security-data-lake-[[sourceRegions]]*/*"
],
"Condition": {
"StringEquals": {
"s3:ResourceAccount": [
"{{bucketOwnerAccountId}}"
]
}
}
},
{
"Sid": "AllowS3Replication",
"Action": [
"s3:ReplicateObject",
"s3:ReplicateDelete",
"s3:ReplicateTags",
"s3:GetObjectVersionTagging"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::aws-security-data-lake-[[destinationRegions]]*/*"
],
"Condition": {
"StringEquals": {
"s3:ResourceAccount": [
"{{bucketOwnerAccountId}}"
]
}
}
}
]
}
将以下信任策略附加到您的角色,以便允许 Amazon S3 代入该角色:
- JSON
-
-
{
"Version":"2012-10-17",
"Statement": [
{
"Sid": "AllowS3ToAssume",
"Effect": "Allow",
"Principal": {
"Service": "s3.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
如果您使用 AWS Key Management Service (AWS KMS) 中的客户托管密钥来加密您的 Security Lake 数据湖,则除了数据复制策略中的权限外,还必须授予以下权限。
{
"Action": [
"kms:Decrypt"
],
"Effect": "Allow",
"Condition": {
"StringLike": {
"kms:ViaService": [
"s3.{sourceRegion1}.amazonaws.com",
"s3.{sourceRegion2}.amazonaws.com"
],
"kms:EncryptionContext:aws:s3:arn": [
"arn:aws:s3:::aws-security-data-lake-{sourceRegion1}*",
"arn:aws:s3:::aws-security-data-lake-{sourceRegion2}*"
]
}
},
"Resource": [
"{sourceRegion1KmsKeyArn}",
"{sourceRegion2KmsKeyArn}"
]
},
{
"Action": [
"kms:Encrypt"
],
"Effect": "Allow",
"Condition": {
"StringLike": {
"kms:ViaService": [
"s3.{destinationRegion1}.amazonaws.com",
],
"kms:EncryptionContext:aws:s3:arn": [
"arn:aws:s3:::aws-security-data-lake-{destinationRegion1}*",
]
}
},
"Resource": [
"{destinationRegionKmsKeyArn}"
]
}
有关复制角色的更多信息,请参阅 Amazon 简单存储服务用户指南中的设置权限。
用于注册 AWS Glue 分区的 IAM 角色
此 IAM 角色授予对 Security Lake 使用的分区更新程序 AWS Lambda 功能的权限,该功能用于为从其他区域复制的 S3 对象注册 AWS Glue 分区。如果不创建此角色,订阅用户就无法从这些对象中查询事件。
要授予这些权限,请创建一个名为 AmazonSecurityLakeMetaStoreManager 的角色(您可能已在启用 Security Lake 时创建了此角色)。有关此角色的更多信息,包括示例策略,请参阅步骤 1:创建 IAM 角色。
在 Lake Formation 控制台中,您还必须按照以下步骤向 AmazonSecurityLakeMetaStoreManager 授予数据湖管理员的权限:
打开 Lake Formation 控制台,网址为https://console.aws.amazon.com/lakeformation/。
以管理用户的身份登录。
如果显示欢迎使用 Lake Formation 窗口,请选择您在步骤 1 中创建或选择的用户,然后选择“开始”。
如果没有看到欢迎使用 Lake Formation 窗口,请执行以下步骤来配置 Lake Formation 管理员。
在导航窗格的权限下,选择管理角色和任务。在数据湖管理员部分,选择选择管理员。
在管理数据湖管理员对话框中,对于 IAM 用户和角色,选择您创建AmazonSecurityLakeMetaStoreManager的 IAM 角色,然后选择保存。
有关更改数据湖管理员权限的更多信息,请参阅 AWS Lake Formation 开发人员指南中的创建数据湖管理员。
添加汇总区域
选择您的首选访问方式,然后按照以下步骤添加汇总区域。
一个区域可以向多个汇总区域提供数据。但是,一个汇总区域无法向其他汇总区域提供数据。
- Console
-
您也可以在启用 Security Lake 时添加汇总区域。有关更多信息,请参阅 Amazon Security Lake 入门。
- API
-
要以编程方式添加汇总区域,请使用 Security Lake API 的UpdateDataLake操作。如果您使用的是 AWS CLI,请运行该update-data-lake命令。在您的请求中,使用 region 字段指定要向汇总区域提供数据的区域。在replicationConfiguration参数regions数组中,为每个汇总区域指定区域代码。有关区域代码的列表,请参阅 AWS 一般参考 中的 Amazon Security Lake 端点。
例如,以下命令设置ap-northeast-2为汇总区域。该us-east-1地区将向该ap-northeast-2地区提供数据。此示例还为添加到数据湖中的对象设定了 365 天的过期期。此示例是针对 Linux、macOS 或 Unix 进行格式化的,它使用反斜杠 (\) 行继续符来提高可读性。
$ aws securitylake update-data-lake \
--configurations '[{"encryptionConfiguration": {"kmsKeyId":"S3_MANAGED_KEY"},"region":"us-east-1","replicationConfiguration": {"regions": ["ap-northeast-2"],"roleArn":"arn:aws:iam::123456789012:role/service-role/AmazonSecurityLakeS3ReplicationRole"},"lifecycleConfiguration": {"expiration":{"days":365}}}]'
您也可以在启用 Security Lake 时添加汇总区域。为此,请使用CreateDataLake操作(或者,如果使用 AWS CLI,则使用create-data-lake命令)。有关在入职期间配置汇总区域的更多信息,请参阅。Amazon Security Lake 入门
更新或移除汇总区域
选择您的首选访问方式,然后按照以下步骤更新或移除 Security Lake 中的汇总区域。
- Console
-
- API
-
要以编程方式配置汇总区域,请使用 Security Lake API 的UpdateDataLake操作。如果您使用的是 AWS CLI,请运行该update-data-lake命令。在您的请求中,使用支持的参数指定汇总区域设置:
-
要添加数据提供区域,请使用 region 字段为要添加的区域指定区域代码。在 replicationConfiguration 对象的 regions 阵列中,为每个要向其提供数据的汇总区域指定区域代码。有关区域代码的列表,请参阅 AWS 一般参考 中的 Amazon Security Lake 端点。
-
要移除数据提供区域,请使用 region 字段为要移除的区域指定区域代码。对于 replicationConfiguration 参数,请勿指定任何值。
例如,以下命令将us-east-1和配置us-east-2为贡献区域。两个区域都将向ap-northeast-3汇总区域提供数据。此示例是针对 Linux、macOS 或 Unix 进行格式化的,它使用反斜杠 (\) 行继续符来提高可读性。
$ aws securitylake update-data-lake \
--configurations '[{"encryptionConfiguration": {"kmsKeyId":"S3_MANAGED_KEY"},"region":"us-east-1","replicationConfiguration": {"regions": ["ap-northeast-3"],"roleArn":"arn:aws:iam::123456789012:role/service-role/AmazonSecurityLakeS3ReplicationRole"},"lifecycleConfiguration": {"expiration":{"days":365}}},
{"encryptionConfiguration": {"kmsKeyId":"S3_MANAGED_KEY"},"region":"us-east-2","replicationConfiguration": {"regions": ["ap-northeast-3"],"roleArn":"arn:aws:iam::123456789012:role/service-role/AmazonSecurityLakeS3ReplicationRole"}, "lifecycleConfiguration": {"expiration":{"days":500},"transitions":[{"days":60,"storageClass":"ONEZONE_IA"}]}}]'