AWS Cloudwatch로 감사 로그 스트리밍 활성화
AWS Cloudwatch로 감사 로그 스트리밍 활성화 (Enable audit log streaming to AWS Cloudwatch)
이 페이지는 조직의 HCP 감사 로그를 AWS Cloudwatch로 스트리밍해 검토하는 방법을 설명해요. HCP 포털에서 감사 로그 스트리밍을 활성화하거나 HCP Terraform 프로바이더의 hcp_log_streaming_destination 리소스를 사용할 수 있어요.
출처: 문서
본문
요구 사항 (Requirements)
HCP UI를 쓰든 Terraform 프로바이더를 쓰든, 감사 로그 스트리밍을 활성화하려면 조직에 대한 owner 또는 admin 권한이 있는 HCP 사용자 계정이 필요해요. 자세한 내용은 users 문서를 참고하세요.
Terraform 프로바이더 방법
HCP UI 대신 Terraform으로 감사 로그 스트리밍을 구성·활성화하려면 다음 소프트웨어와 프로바이더 버전이 필요해요.
- Terraform v1.1.5 이상. 최상의 환경을 위해 최신 릴리스를 사용하는 것을 권장해요.
- HashiCorp Cloud Platform(HCP) Provider 버전 0.83.0 이상.
또한 HCP 프로바이더가 조직 수준 서비스 주체와 서비스 주체 키로 인증하도록 구성해야 해요. 자세한 내용은 Terraform 레지스트리의 Authenticate with HCP 가이드를 참고하세요.
워크플로우 (Workflow)
전용 HCP 워크플로우를 사용해 HCP에서 AWS Cloudwatch로 감사 로그 스트리밍을 활성화할 수 있어요. Terraform 레지스트리의 HCP 프로바이더를 사용해 조직의 인프라를 만들고 관리할 수도 있습니다. 감사 로그 스트리밍을 활성화하려면 다음 단계를 완료해요.
- HCP 밖에서 감사 로그용 정책이 부착된 AWS IAM 역할을 만들어요.
- HCP에서 조직에 대한 감사 로그 스트리밍을 활성화해요.
- 감사 로그를 확인해요.
- HCP 밖에서 감사 로그용 정책이 부착된 AWS IAM 역할을 만들어요.
hcp_log_streaming_destination리소스를 구성해요.- Terraform으로 인프라를 갱신해요.
- 감사 로그를 확인해요.
감사 로그용 정책이 부착된 AWS IAM 역할 만들기 (Create an AWS IAM role with an attached policy for the audit logs)
AWS Cloudwatch로의 감사 로그 스트리밍을 활성화하려면 HashiCorp가 계정의 AWS Cloudwatch 서비스로 감사 로그를 스트리밍할 수 있게 하는 AWS IAM 역할을 AWS 계정에 만들어야 해요. AWS 콘솔에서 수동으로 역할을 만들고 정책을 부착하거나, Terraform으로 리소스를 만들 수 있어요.
HCP 포털에서 감사 로그 스트리밍 대상을 만들면 AWS 환경에 필요한 AWS ID와 External ID 값이 제공돼요. AWS 콘솔에서 이 값들로 역할을 만들려면 AWS 문서의 지침을 참고하세요. Terraform으로 역할과 정책을 만들려면 구성에 다음 AWS Terraform 프로바이더 리소스를 추가해요.
resource "aws_iam_role" "cloudwatch_hcp_audit_logs" {
name = "cloudwatch-hcp-audit-logs"
assume_role_policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::711430482607:root"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": "hcp-log-stream"
}
}
}
]
}
EOF
}
resource "aws_iam_role_policy" "hcp_log_streaming_policy" {
name = "hcp_log_streaming_policy"
role = aws_iam_role.cloudwatch_hcp_audit_logs.id
policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "HCPLogStreaming",
"Effect": "Allow",
"Action": [
"logs:PutLogEvents",
"logs:DescribeLogStreams",
"logs:DescribeLogGroups",
"logs:CreateLogStream",
"logs:CreateLogGroup"
],
"Resource": "*"
}
]
}
EOF
}
이 구성 예시들은 External ID로 hcp-log-stream을 사용해요. 프로덕션 환경에서 감사 로그를 안전하게 유지하려면 일반 "hcp-log-stream" 대신 커스텀 문자열을 external ID로 사용하는 것을 권장해요. HCP UI에서 감사 로그 스트림을 만들 때 Terraform 구성에 제공된 External ID 값을 사용하세요.
다음 명령을 실행해 이 리소스들을 대상으로 지정하고 Terraform으로 인프라에 적용해요.
$ terraform apply -target "aws_iam_role.cloudwatch_hcp_audit_logs" -target "aws_iam_role_policy.hcp_log_streaming_policy"
감사 로그 스트리밍 활성화하기 (Enable audit log streaming)
AWS Cloudwatch로의 감사 로그 스트리밍을 활성화하려면 다음 단계를 완료해요.
- HCP 포털에 로그인해요.
- 감사 로그를 스트리밍하려는 조직을 선택해요.
- Audit log streaming을 클릭해요.
- Create streaming destination을 클릭해요.
- AWS Cloudwatch를 선택해요.
- 아직 안 했다면 AWS 역할과 정책을 만들어요.
- Destination name - 이 라벨은 HCP 조직의 감사 로그 스트림 목록에 나타나요.
- Role ARN - HCP가 Cloudwatch 환경으로 감사 로그를 스트리밍하도록 승인하는 IAM 역할의 AWS 리소스 식별자예요.
- Region - Cloudwatch 데이터를 저장하는 AWS 지역이에요.
- Log group 이름을 기록해 두세요. 로그는 이 이름으로 AWS Cloudwatch에 나타나요. 이 값은 편집할 수 없어요.
- Test connection을 클릭해 HCP가 AWS Cloudwatch로 보낼 테스트 로그를 생성해요.
- Save를 클릭해요.
Terraform 레지스트리의 HCP 프로바이더를 사용해 감사 로그 스트리밍을 활성화할 수도 있어요.
hcp_log_streaming_destination 리소스 구성하기
HCP 조직에 대해 hcp_log_streaming_destination 리소스를 만든 역할의 ARN과 external ID로 구성해요. 지정한 로그 그룹이 존재하지 않으면, 첫 로그가 Cloudwatch로 스트리밍될 때 Terraform이 그 로그 그룹을 만들어요.
다음 예시는 이 리소스의 일반적인 구성을 제공합니다.
resource "hcp_log_streaming_destination" "aws_cloudwatch" {
name = "<cloudwatch-prod>"
cloudwatch = {
external_id = "hcp-log-stream"
region = "us-east-1"
role_arn = "arn:aws:iam::111111111:role/cloudwatch-hcp-audit-logs"
log_group_name = "/hashicorp/hcp/audit-logs/"
}
}
역할 ARN과 로그 그룹 사용 방법에 대한 자세한 내용은 AWS 문서의 IAM identifiers와 Working with log groups and streams를 참고하세요.
Terraform으로 인프라 갱신하기
리소스를 구성한 뒤 terraform apply를 실행해 배포를 갱신해요. 방금 만든 리소스를 대상으로 하려면 다음 명령을 실행해요.
$ terraform apply -target "aws_iam_role.cloudwatch_hcp_audit_logs" -target "aws_iam_role_policy.hcp_log_streaming_policy" -target "hcp_log_streaming_destination.aws_cloudwatch"
감사 로그를 보려면 Cloudwatch AWS 서비스 페이지로 이동해 Log groups를 클릭하고 **/hashicorp/hcp/audit-logs/**를 클릭한 다음 로그 스트림을 클릭해요. 로그는 생성한 후 나타납니다.
감사 로그 확인하기 (View the audit logs)
더 알아보기 (Learn more)
- HCP 감사 로그 스트리밍 — 감사 로그 스트리밍 전반을 살펴보세요.
- Datadog으로 감사 로그 스트리밍 활성화 — Datadog 대상 구성 방법을 확인해 보세요.
- Splunk로 감사 로그 스트리밍 활성화 — Splunk 대상 구성 방법을 알아보세요.