HCP Boundary 감사 로그

HCP Boundary 감사 로그

HCP Boundary는 지원되는 프로바이더의 기존 고객 관리 계정으로 감사 이벤트의 근실시간 스트리밍을 지원해요. 감사 이벤트는 인증된 Boundary 클라이언트(Desktop, CLI 또는 브라우저 기반 관리 UI)가 다음 Boundary 리소스 중 하나에서 수행한 모든 create, list, update, delete 작업을 캡처해요:

  • 세션(Sessions)
  • 스코프(Scopes)
  • 워커(Workers)
  • 자격 증명 저장소(credential stores), 자격 증명 라이브러리, 자격 증명
  • 인증 방법(auth methods), 역할, 관리 그룹, 그룹, 사용자, 계정, 권한(grants)
  • 호스트 카탈로그, 호스트 집합, 호스트, 타겟

캡처된 데이터에는 작업을 수행한 사용자의 사용자 ID, 타임스탬프, 전체 요청 및 응답 페이로드가 포함돼요.

감사 로그를 통해 관리자는 사용자 활동을 추적하고 보안 팀은 규제 요구사항에 따른 규정 준수를 보장할 수 있어요.

참고: 감사 로그 스트리밍을 활성화하려면 조직 수준의 서비스 주체로 HCP에 인증해야 해요. 프로젝트 수준의 서비스 주체로 감사 로그를 활성화하려고 하면 오류가 발생해요. 추가 지침과 제약 사항은 HCP 감사 로그 스트리밍을 참고해 주세요.

이 문서는 지원되는 프로바이더인 AWS CloudWatch와 Datadog으로 감사 로그 스트리밍을 활성화하고 구성하는 데 필요한 단계를 설명해요. 한 번에 하나의 계정으로 로그를 스트리밍할 수 있어요.

출처: 문서

본문

AWS CloudWatch로 스트리밍 구성하기

AWS CloudWatch로 감사 로그 스트리밍을 구성하려면 HCP Boundary가 AWS CloudWatch로 로그를 보내는 데 사용할 수 있는 IAM 역할을 만들어야 해요. 필요한 구성을 포함한 IAM 역할을 만드는 단계는 다음과 같아요.

IAM 정책 만들기

  1. AWS Management Console을 실행하고 IAM > Policies로 이동한 다음 Create policy를 클릭해요.
  2. JSON을 선택하고 정책 편집기에 다음 정책을 입력해요.
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "HCPLogStreaming",
      "Effect": "Allow",
      "Action": [
        "logs:PutLogEvents",
        "logs:DescribeLogStreams",
        "logs:DescribeLogGroups",
        "logs:CreateLogStream",
        "logs:CreateLogGroup",
        "logs:TagLogGroup"
      ],
      "Resource": "*"
    }
  ]
}
  1. Next를 클릭해요.
  2. 새 정책의 이름을 입력해요. 예: hcp-log-streaming.
  3. Create policy를 클릭해 IAM 정책을 만들어요.

IAM 역할 구성하기

새 IAM 역할을 만들기 전에 HCP 포털에서 HashiCorp가 생성한 external ID를 가져와요.

  1. HCP 포털을 실행해요.
  2. Boundary로 이동해 클러스터를 선택해요.
  3. Audit logs를 선택해요.
  4. Enable log streaming을 클릭해요.
  5. AWS CloudWatch를 선택해요.
  6. External ID 값을 복사해요.

이 값은 IAM 역할 생성 중에 필요해요.

다음으로 AWS Management Console 또는 HashiCorp Terraform을 사용해 IAM 역할을 만들어요.

  1. AWS Management Console을 실행하고 IAM > Roles로 이동한 다음 Create role을 클릭해요.
  2. Trusted entity type에서 AWS account를 선택해요.
  3. An AWS account에서 Another AWS account를 선택해요.
  4. Account ID 필드에 711430482607을 입력해요.
  5. Options 아래에서 Require external ID를 선택해요.
  6. HCP 포털에서 복사한 External ID 값을 입력해요.
  7. Next를 클릭해요.
  8. 이전에 만든 정책을 선택하고 Next를 클릭해 정책을 역할에 연결해요.
  9. Create role을 클릭해 완료해요.

감사 로그 스트리밍을 활성화하는 데 필요한 IAM 역할을 만들려면 다음 Terraform 구성을 사용해요.

data "aws_iam_policy_document" "allow_hcp_to_stream_logs" {
 statement {
   effect = "Allow"
   actions = [
     "logs:PutLogEvents",       # To write logs to cloudwatch
     "logs:DescribeLogStreams", # To get the latest sequence token of a log stream
     "logs:DescribeLogGroups",  # To check if a log group already exists
     "logs:CreateLogGroup",     # To create a new log group
     "logs:CreateLogStream"     # To create a new log stream
   ]
   resources = [
     "*"
   ]
 }
}

data "aws_iam_policy_document" "trust_policy" {
 statement {
   sid     = "HCPLogStreaming"
   effect  = "Allow"
   actions = ["sts:AssumeRole"]
   principals {
     identifiers = ["711430482607"]
     type        = "AWS"
   }
   condition {
     test     = "StringEquals"
     variable = "sts:ExternalId"
     values = [
       "<ExternalID-generated-by-Hashicorp>"
     ]
   }
 }
}

resource "aws_iam_role" "role" {
 name               = "hcp-log-streaming"
 description        = "iam role that allows hcp to send logs to cloudwatch logs"
 assume_role_policy = data.aws_iam_policy_document.trust_policy.json
 inline_policy {
   name   = "inline-policy"
   policy = data.aws_iam_policy_document.allow_hcp_to_stream_logs.json
 }
}

IAM 역할을 만든 후 HCP Boundary에서 감사 로그 스트리밍을 구성할 수 있어요.

  1. HCP 포털을 실행해요.
  2. HCP Boundary Overview 페이지에서 Audit logs 보기를 선택해요.
  3. Enable log streaming을 클릭해요.
  4. AWS CloudWatch를 선택해요.
  5. CloudWatch configuration 섹션에서 Destination name과 Role ARN을 입력해요.
  6. 데이터를 저장하려는 위치와 일치하는 Region을 선택해요.
  7. Save를 클릭해요.

Boundary를 사용한 지 몇 분 안에 AWS CloudWatch 환경으로 로그가 도착해야 해요.

HashiCorp가 로그 그룹과 로그 스트림을 동적으로 만들어 줘요. 구성을 설정한 후 접두사가 /hashicorp인 로그 그룹을 AWS CloudWatch에서 찾을 수 있어요. 이 로그 그룹을 사용하면 CloudWatch에 있을 수 있는 다른 로그와 HashiCorp 생성 로그를 분리해 필터링할 수 있어요.

로그 탐색에 대한 자세한 내용은 AWS 문서를 참고해 주세요.

Datadog으로 스트리밍 구성하기

Datadog으로 감사 로그 스트리밍을 구성하려면 다음이 필요해요:

  • Datadog 계정이 있는 리전
  • Datadog API 키

다음 단계를 완료해 주세요:

  1. HCP 포털을 실행해요.
  2. Boundary로 이동해 클러스터를 선택해요.
  3. Audit logs를 선택해요.
  4. Enable log streaming을 클릭해요.
  5. Datadog을 선택해요.
  6. Datadog configuration 아래에서 Destination name과 API Key를 입력해요.
  7. 기존 Datadog 환경과 일치하는 Datadog site region을 선택해요.
  8. Save를 클릭해요.

Boundary를 사용한 지 몇 분 안에 Datadog 환경으로 로그가 도착해야 해요.

로그 탐색에 대한 자세한 내용은 Datadog 문서를 참고해 주세요.

스트리밍 구성 테스트하기

스트리밍 구성 설정 중에 구성이 HCP 내에서 작동하는지 테스트할 수 있어요. 구성 페이지에 올바른 자격 증명과 기타 파라미터를 입력했는지 확인하고 싶다면 테스트하는 것이 도움이 돼요. 구성을 테스트하려면 테스트할 로깅 프로바이더의 파라미터를 입력한 다음 Test connection을 클릭해요.

HCP는 로깅 프로바이더에 테스트 메시지를 보내고 Enable log streaming 페이지에 성공 또는 실패 상태를 공유해요.

이미 구성한 스트리밍 구성을 업데이트할 때도 구성을 테스트할 수 있어요.

스트리밍 구성 업데이트하기

기존 감사 로그 스트리밍의 구성을 업데이트할 수 있어요. 예를 들어 로깅 프로바이더에 사용하는 시크릿을 교체하거나, 로깅 프로바이더를 다른 것으로 바꿔야 할 수 있어요.

  1. HCP 포털을 실행해요.
  2. Boundary로 이동해 클러스터를 선택해요.
  3. Audit logs를 선택해요.
  4. Manage 메뉴에서 Edit streaming configuration을 선택해요. 다음을 수행할 수 있어요:
    • 새 프로바이더 선택
    • 프로바이더의 새 파라미터 입력
    • Test connection을 선택해 연결 테스트
  5. Save를 클릭해요.

보존 기간

HCP Boundary는 플랫폼 내에서 감사 로그를 최소 1년 동안 저장해요. HCP는 2022년 10월부터 감사 로그를 보관하기 시작했어요. 감사 로그는 이를 생성한 클러스터가 삭제된 후에도 사용할 수 있어요. 삭제된 클러스터의 로그 접근이나 추가 질문이 있으면 HashiCorp Help Center에 요청을 제출해 주세요.

추가 정보

감사 로그 생성 및 관리에 대한 추가 정보는 HCP 감사 로그 스트리밍을 참고해 주세요.

더 알아보기