기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Security Lake의 사용자 지정 소스에서 데이터 수집
Amazon Security Lake는 타사 사용자 지정 소스에서 로그와 이벤트를 수집할 수 있습니다. Security Lake는 각 사용자 지정 소스에 대해 다음을 처리합니다.
-
Amazon S3 버킷의 소스에 고유한 접두사를 제공합니다.
-
AWS Identity and Access Management 사용자 지정 소스가 데이터 레이크에 데이터를 쓸 수 있도록 허용하는 (IAM)에 역할을 생성합니다. 이 역할에 대한 권한 경계는 라는 AWS 관리형 정책에 의해 설정됩니다AmazonSecurityLakePermissionsBoundary.
-
소스가 Security Lake에 쓰는 객체를 구성하는 AWS Lake Formation 테이블을 생성합니다.
-
소스 데이터를 분할할 AWS Glue 크롤러를 설정합니다. 크롤러는 테이블 AWS Glue Data Catalog 로 를 채웁니다. 또한 새 소스 데이터를 자동으로 검색하고 스키마 정의를 추출합니다.
사용자 지정 소스를 Security Lake에 추가하려면 다음 요구 사항을 충족해야 합니다.
-
대상 - 사용자 지정 소스는 소스에 할당된 접두사 아래에 있는 S3 객체 세트로 Security Lake에 데이터를 쓸 수 있어야 합니다. 여러 범주의 데이터가 포함된 소스의 경우 각 고유한 Open Cybersecurity Schema Framework(OCSF) 이벤트 클래스
를 별도의 소스로 제공해야 합니다. Security Lake는 사용자 지정 소스가 S3 버킷의 지정된 위치에 쓸 수 있도록 허용하는 IAM 역할을 생성합니다. 참고
OCSF 검증 도구를
사용하여 사용자 지정 소스가 와 호환되는지 확인합니다 OCSF Schema 1.1
. 형식 - 사용자 지정 소스에서 수집된 각 S3 객체는 Apache Parquet 파일 형식을 지정해야 합니다.
스키마 - Parquet 형식의 객체 내의 각 레코드에 동일한 OCSF 이벤트 클래스를 적용해야 합니다.
Security Lake에서 사용자 지정 소스를 수집하는 모범 사례
효율적인 데이터 처리 및 쿼리를 촉진하려면 Security Lake에 사용자 지정 소스를 추가할 때 다음 모범 사례를 따르는 것이 좋습니다.
- 분할
-
객체는 소스 위치, AWS 리전, AWS 계정및 날짜별로 분할되어야 합니다.
-
파티션 데이터 경로의 형식은 다음과 같습니다.
.bucket-name
/ext/custom-source-name
/region=region
/accountId=accountID
/eventDay=YYYYMMDD
샘플 파티션은
aws-security-data-lake-
과 같습니다.us-west-2-lake-uid
/ext/custom-source-name
/region=us-west-2
/accountId=123456789012
/eventDay=20230428
/ -
사용자 지정 소스에 소스 버전을 추가한 경우 파티션 데이터 경로의 형식은 다음과 같습니다.
bucket-name
/ext/custom-source-name
/custom-source-version
/region=us-west-2
/accountId=123456789012
/eventDay=20230428
/소스 버전을 포함하는 샘플 파티션은 입니다
aws-security-data-lake-
.us-west-2-lake-uid
/ext/custom-source-name
/2.0
/region=us-west-2
/accountId=123456789012
/eventDay=20230428
/
다음 목록은 파티션에 사용되는 파라미터를 설명합니다.
-
bucket-name
— Security Lake가 사용자 지정 소스 데이터를 저장하는 Amazon S3 버킷의 이름입니다. -
source-location
— S3 버킷에 있는 사용자 지정 소스의 접두사. Security Lake는 지정된 소스의 모든 S3 객체를 이 접두사 아래에 저장하며 접두사는 해당 소스에 고유합니다. -
source-version
- 사용자 지정 소스의 소스 버전입니다. -
region
- 데이터가 기록되는 AWS 리전 대상입니다. -
accountId
–소스 파티션의 레코드가 관련된 AWS 계정 ID입니다. -
eventDay
— 이벤트가 발생한 날짜로, 8자리 문자열 (YYYYMMDD
) 형식으로 지정됩니다.
-
- 객체 크기 및 속도
-
Security Lake로 전송된 파일은 5분에서 1일의 이벤트 날짜까지 증분 단위로 전송해야 합니다. 파일 크기가 256MB를 초과하는 경우 고객은 5분 이상 파일을 보낼 수 있습니다. 객체 및 크기 요구 사항은 쿼리 성능을 위한 Security Lake를 최적화하는 것입니다. 사용자 지정 소스 요구 사항을 따르지 않으면 Security Lake 성능에 영향을 미칠 수 있습니다.
- Parquet 설정
-
Security Lake는 Parquet 버전 1.x 및 2.x를 지원합니다. 데이터 페이지 크기는 1MB (비압축)로 제한해야 합니다. 행 그룹 크기는 256MB (압축)를 넘지 않아야 합니다. Parquet 객체 내의 압축의 경우 zstandard이 선호됩니다.
- 정렬
-
데이터를 쿼리하는 비용을 줄이려면 Parquet 형식의 각 개체 내에서 레코드를 시간순으로 정렬해야 합니다.
Security Lake에서 사용자 지정 소스를 추가하기 위한 사전 조건
사용자 지정 소스를 추가할 때 Security Lake는 소스가 데이터 레이크의 올바른 위치에 데이터를 쓸 수 있도록 허용하는 IAM 역할을 생성합니다. 역할의 이름은 형식 을 따르며AmazonSecurityLake-Provider-{name of the custom source}-{region}
, 여기서 region
는 사용자 지정 소스를 추가하는 AWS 리전 입니다. Security Lake는 데이터 레이크에 대한 액세스를 허용하는 정책을 역할에 연결합니다. 고객 관리형 AWS KMS 키로 데이터 레이크를 암호화한 경우 Security Lake는 역할 kms:Decrypt
및 kms:GenerateDataKey
권한과 함께 정책도 연결합니다. 이 역할에 대한 권한 경계는 라는 AWS 관리형 정책에 의해 설정됩니다AmazonSecurityLakePermissionsBoundary.
권한 확인
사용자 지정 소스를 추가하기 전에 다음 작업을 수행할 권한이 있는지 확인합니다.
권한을 확인하려면 IAM 를 사용하여 IAM 자격 증명에 연결된 IAM 정책을 검토합니다. 그런 다음 해당 정책의 정보를 사용자 지정 소스를 추가하기 위해 수행할 수 있어야 하는 다음 작업 목록과 비교하십시오.
-
glue:CreateCrawler
-
glue:CreateDatabase
-
glue:CreateTable
-
glue:StopCrawlerSchedule
-
iam:GetRole
-
iam:PutRolePolicy
-
iam:DeleteRolePolicy
-
iam:PassRole
-
lakeformation:RegisterResource
-
lakeformation:GrantPermissions
-
s3:ListBucket
-
s3:PutObject
이러한 작업을 통해 사용자 지정 소스에서 로그와 이벤트를 수집하고, 올바른 AWS Glue 데이터베이스와 테이블로 전송하고, Amazon S3에 저장할 수 있습니다.
데이터 레이크의 서버 측 암호화에 AWS KMS 키를 사용하는 경우 , 및 에 대한 권한도 필요합니다kms:CreateGrant
kms:DescribeKey
kms:GenerateDataKey
.
중요
Security Lake 콘솔을 사용하여 사용자 지정 소스를 추가하려면 다음 단계를 건너뛰고 로 진행할 수 있습니다Security Lake에 사용자 지정 소스 추가. Security Lake 콘솔은 시작하기 위한 간소화된 프로세스를 제공하며, 사용자를 대신하여 필요한 모든 IAM 역할을 생성하거나 기존 역할을 사용합니다.
Security Lake API 또는 AWS CLI 를 사용하여 사용자 지정 소스를 추가하려면 다음 단계를 진행하여 Security Lake 버킷 위치에 대한 쓰기 액세스를 허용하는 IAM 역할을 생성합니다.
Security Lake 버킷 위치에 대한 쓰기 액세스를 허용하는 IAM 역할 생성(API 및 AWS CLI전용 단계)
Security Lake API 또는 AWS CLI 를 사용하여 사용자 지정 소스를 추가하는 경우 이 IAM 역할을 추가하여 사용자 지정 소스 데이터를 크롤링하고 데이터에서 파티션을 식별할 수 있는 AWS Glue 권한을 부여합니다. 이러한 파티션은 데이터를 구성하고 데이터 카탈로그에서 테이블을 생성 및 업데이트하는 데 필요합니다.
이 IAM 역할을 생성한 후 사용자 지정 소스를 추가하려면 역할의 Amazon 리소스 이름(ARN)이 필요합니다.
arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole
AWS 관리형 정책을 연결해야 합니다.
필요한 권한을 부여하려면 가 사용자 지정 소스에서 데이터 파일을 AWS Glue 크롤러 읽고 AWS Glue 데이터 카탈로그에서 테이블을 생성/업데이트할 수 있도록 역할에 다음 인라인 정책을 생성하고 포함시켜야 합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3WriteRead", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::{{bucketName}}/*" ] } ] }
를 AWS 계정 사용하여 외부 ID를 기반으로 역할을 수임할 수 있는 를 허용하려면 다음 신뢰 정책을 연결합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
사용자 지정 소스를 추가하는 리전의 S3 버킷이 고객 관리형 로 암호화된 경우 역할 및 KMS 키 정책에 다음 정책도 연결 AWS KMS key해야 합니다.
{ "Effect": "Allow", "Action": [ "kms:GenerateDataKey" "kms:Decrypt" ], "Condition": { "StringLike": { "kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::{{
name of S3 bucket created by Security Lake
}" ] } }, "Resource": [ "{{ARN of customer managed key}}" ] }