인포레터에서 최신 DevOps 트렌드를 격주로 만나보세요!
외부 감사 저장소
외부 감사 저장소는 Auth 서비스가 AWS 계정의 인프라에 감사 이벤트 및 세션 기록을 직접 저장하는 Teleport의 기능입니다.
감사 이벤트와 세션 기록을 저장하는 인프라를 제어하기 때문에, 외부 감사 저장소를 사용하면 준수, 보존 및 개인 정보 보호 정책을 충족할 수 있습니다.
외부 감사 저장소를 사용하면 사용자 지정 감사 이벤트 쿼리를 지원하기 위해 내보내기를 구축할 필요가 없습니다. 감사 이벤트를 저장된 위치에서 효율적으로 액세스하고 쿼리할 수 있습니다.
외부 감사 저장소는 감사 이벤트에 대한 Teleport의 Athena 백엔드와 세션 기록에 대한 S3 백엔드를 기반으로 합니다. 이 기능은 Teleport v14.2.1 이상을 실행하는 Teleport Enterprise Cloud 클러스터에서만 사용할 수 있습니다.
필수 조건
- Teleport Enterprise Cloud 계정. 계정이 없으시면 가입하여 무료 평가판을 이용하시기 바랍니다.
- 감사 이벤트 및 세션 기록을 저장하고 쿼리하려면 선택한 AWS 계정에서 다음 네 가지 구성 요소를 설정해야 합니다. Teleport 웹 UI는 필요한 인프라를 만드는 과정을 안내하지만, 다음 구성 요소가 포함된다는 점을 알고 있어야 합니다:
- 클러스터의 모든 감사 이벤트와 세션 기록을 보관할 장기 저장 Amazon S3 버킷. 감사 이벤트는 Parquet 파일로 저장됩니다.
- S3에 Parquet 형식으로 저장된 감사 이벤트의 스키마를 나타내는 테이블이 있는 AWS Glue 데이터베이스.
- 감사 로그 쿼리를 실행하기 위한 Amazon Athena 작업 그룹.
- Athena 쿼리 결과를 일시적으로 보유하는 임시 저장 S3 버킷.
- 현재로서는 AWS 인프라가 클러스터의 Teleport Auth 서비스와 동일한 AWS 리전에서 호스팅되어야 합니다.
1/2단계. RBAC 구성
통합을 구성하려면 Teleport 역할 중 하나에 다음 허용 규칙이 필요합니다. 이러한 규칙은 기본적으로 사전 설정된 editor
역할에서 사용할 수 있습니다:
kind: role
version: v7
metadata:
name: example
spec:
allow:
rules:
- resources:
- integration
- external_audit_storage
verbs:
- create
- update
- list
- read
2/2단계. 웹 UI 방문
외부 감사 저장소는 Teleport 웹 UI의 관리 패널에서 통합으로 제공됩니다:
외부 감사 저장소가 활성화되면 Teleport Enterprise Cloud 클러스터가 조직의 AWS 계정에 인증하기 위한 OpenID Connect (OIDC) ID 공급자로 작동합니다.
Teleport 웹 UI는 AWS OIDC 통합을 설정하는 단계(아직 없는 경우), IAM 정책을 구성하고, AWS 계정에서 인프라를 생성하며, S3 버킷 및 Athena 작업 그룹에 대한 연결을 테스트하고, 기능을 활성화하는 과정을 안내합니다.
외부 감사 저장소에 대한 IAM 정책은 다음과 비슷하며, AWS 환경에 맞게 수정되어야 합니다:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:GetObjectVersion",
"s3:ListMultipartUploadParts",
"s3:AbortMultipartUpload",
"s3:ListBucket",
"s3:ListBucketVersions",
"s3:ListBucketMultipartUploads",
"s3:GetBucketOwnershipControls",
"s3:GetBucketPublicAccessBlock",
"s3:GetBucketObjectLockConfiguration",
"s3:GetBucketVersioning",
"s3:GetBucketLocation"
],
"Resource": [
"arn:aws:s3:::teleport-longterm-<unique_id>",
"arn:aws:s3:::teleport-longterm-<unique_id>/events/*",
"arn:aws:s3:::teleport-longterm-<unique_id>/sessions/*",
"arn:aws:s3:::teleport-transient-<unique_id>",
"arn:aws:s3:::teleport-transient-<unique_id>/query_results/*"
],
"Sid": "ReadWriteSessionsAndEvents"
},
{
"Effect": "Allow",
"Action": [
"athena:StartQueryExecution",
"athena:GetQueryResults",
"athena:GetQueryExecution"
],
"Resource": "arn:aws:athena:us-west-2:278576220453:workgroup/teleport_events_<unique_id>",
"Sid": "AllowAthenaQuery"
},
{
"Effect": "Allow",
"Action": [
"glue:GetTable",
"glue:GetTableVersion",
"glue:GetTableVersions",
"glue:UpdateTable"
],
"Resource": [
"arn:aws:glue:us-west-2:278576220453:catalog",
"arn:aws:glue:us-west-2:278576220453:database/teleport_events_<unique_id>",
"arn:aws:glue:us-west-2:278576220453:table/teleport_events_<unique_id>/teleport_events"
],
"Sid": "FullAccessOnGlueTable"
}
]
}
외부 감사 저장소로 마이그레이션
외부 감사 저장소가 활성화되면, 모든 새로운 감사 이벤트와 세션 녹화가 S3 버킷에 저장되며, Teleport Cloud 인프라에 저장되지 않습니다.
현재 이벤트 핸들러 플러그인을 사용하여 이벤트를 내보내는 경우, 이전 백엔드에서 새로운 백엔드로 전환되며 새로운 이벤트를 계속 내보내게 됩니다. 외부 감사 저장소로의 전환 이후에 발생한 이벤트만 Teleport UI에서 확인 가능하거나 Teleport 클라이언트에 접근할 수 있습니다.
외부 감사 저장소 비활성화
앞으로 언제든지 외부 감사 저장소를 비활성화하면, 귀하의 인프라는 변경되지 않으며 모든 감사 이벤트와 세션 녹화는 S3 버킷에 남아 있습니다.
이벤트 핸들러 플러그인을 사용하는 경우, 새로운 이벤트의 내보내기는 계속 진행됩니다. 모든 새로운 이벤트는 Teleport Cloud 인프라에 저장됩니다. 외부 감사 저장소가 비활성화된 동안, Teleport Cloud 인프라에 저장된 이벤트만 Teleport UI에서 확인 가능하거나 Teleport 클라이언트에 접근할 수 있습니다.