本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
管理 区域
Amazon Security Lake AWS 区域 可以收集您启用该服务的安全日志和事件。对于每个区域,您的数据都存储在不同的 Amazon S3 存储桶中。您可以为不同的区域指定不同的数据湖配置(例如,不同的来源和留存设置)。您还可以定义一个或多个汇总区域来整合多个区域的数据。
检查区域状态
Security Lake 可以跨多个 AWS 区域收集数据。要跟踪数据湖的状态,了解每个区域的当前配置可能会有所帮助。选择您的首选访问方式,然后按照以下步骤获取区域的当前状态。
- Console
-
- API
-
要获取当前区域中日志收集的状态,请使用 Security Lake API 的GetDataLakeSources操作。如果您使用的是 AWS CLI,请运行该get-data-lake-sources命令。对于accounts
参数,将一个或多个 AWS 账户 ID 指定为列表。如果您的请求成功,Security Lake 将返回当前区域中这些账户的快照,包括 Security Lake 正在从哪些 AWS 来源收集数据以及每个来源的状态。如果您不包含accounts
参数,则响应将包含当前区域中配置了 Security Lake 的所有账户的日志收集状态。
例如,以下 AWS CLI 命令检索当前区域中指定账户的日志收集状态。此示例是针对 Linux、macOS 或 Unix 进行格式化的,它使用反斜杠 (\) 行继续符来提高可读性。
$
aws securitylake get-data-lake-sources \
--accounts "123456789012
" "111122223333
"
以下 AWS CLI 命令列出指定区域中所有账户和已启用源的日志收集状态。此示例是针对 Linux、macOS 或 Unix 进行格式化的,它使用反斜杠 (\) 行继续符来提高可读性。
$
aws securitylake get-data-lake-sources \
--regions "us-east-1
" \
--query 'dataLakeSources[].[account,sourceName]'
要确定您是否为某个区域启用了安全湖,请使用ListDataLakes操作。如果您使用的是 AWS CLI,请运行该list-data-lakes命令。对于 regions
参数,请指定区域的区域代码。例如,us-east-1
表示美国东部(弗吉尼亚州北部)区域。有关区域代码的列表,请参阅《AWS 一般参考》中的 Amazon Security Lake 端点。ListDataLakes
操作会返回您在请求中指定的每个区域的数据湖配置设置。如果您未指定区域,Security Lake 会返回每个可用 Security Lake 的区域中您的数据湖的状态和配置设置。
例如,以下 AWS CLI 命令显示该eu-central-1
区域中数据湖的状态和配置设置。此示例是针对 Linux、macOS 或 Unix 进行格式化的,它使用反斜杠 (\) 行继续符来提高可读性。
$
aws securitylake list-data-lakes \
--regions "us-east-1
" "eu-central-1
"
选择首选方式,然后按照以下说明更新一个或多个 AWS 区域中的数据湖的设置。
- Console
-
打开 Security Lake 控制台:https://console.aws.amazon.com/securitylake/。
-
在导航窗格中,选择区域。
-
选择一个区域,然后选择编辑。
-
选择覆盖<区域>中所有账户的来源复选框,确认使用此处的选择覆盖该区域以前的选择。
-
在选择存储类中,选择添加转换,为您的数据添加新的存储类。
-
对于标签,您可以选择为区域指定或编辑标签。标签是您可以为某些类型的 AWS 资源定义和分配的标签,包括您在特定 AWS 账户 区域的数据湖配置。要了解更多信息,请参阅为 Amazon Security Lake 资源添加标签。
-
要将某个区域变为汇总区域,请在导航窗格中选择汇总区域(在设置下)。然后选择 Modify (修改)。在选择汇总区域部分,选择添加汇总区域。选择数据提供区域,并向 Security Lake 提供跨多个区域复制数据的权限。完成后,选择保存以保存更改。
- API
-
要以编程方式更新数据湖的区域设置,请使用 Security Lake API 的UpdateDataLake操作。如果您使用的是 AWS CLI,请运行该update-data-lake命令。对于 region
参数,请指定您要更改设置的区域的区域代码。例如,us-east-1
表示美国东部(弗吉尼亚州北部)区域。有关区域代码的列表,请参阅《AWS 一般参考》中的 Amazon Security Lake 端点。
使用其他参数为要更改的每个设置指定新值,例如,加密密钥 (encryptionConfiguration
) 和留存设置 (lifecycleConfiguration
)。
例如,以下 AWS CLI 命令更新该us-east-1
区域的数据过期和存储类别转换设置。此示例是针对 Linux、macOS 或 Unix 进行格式化的,它使用反斜杠 (\) 行继续符来提高可读性。
$
update-data-lake \
--configurations '[{"region":"us-east-1
","lifecycleConfiguration": {"expiration":{"days":500
},"transitions":[{"days":45
,"storageClass":"ONEZONE_IA
"}]}}]'
配置汇总区域
汇总区域整合了来自一个或多个数据提供区域的数据。指定汇总区域可以帮助您遵守区域合规性要求。
在添加汇总区域之前,您首先需要在 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
是汇总区域。
{
"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 代入该角色:
{
"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 控制台:https://console.aws.amazon.com/securitylake/。
在导航窗格中的设置下,选择汇总区域。
选择修改,然后选择添加汇总区域。
指定汇总区域以及数据提供区域。如果要添加多个汇总区域,请重复此步骤。
如果这是您首次添加汇总区域,对于服务访问权限,请创建一个新的 IAM 角色或使用现有 IAM 角色向 Security Lake 授予跨多个区域复制数据的权限。
完成后,选择保存。
您也可以在启用 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
"}]}}]'