From security
Reviews AWS IaC code for Well-Architected Security Pillar: IAM minimal privileges, S3/RDS encryption, security groups, VPC Flow Logs, GuardDuty, KMS rotation, public buckets. Terraform patterns.
npx claudepluginhub roboco-io/plugins --plugin securityThis skill uses the workspace's default tool permissions.
데이터 보호, ID/접근 관리, 탐지 제어 관점에서 IaC 코드를 검토합니다.
Orchestrates AWS Well-Architected Framework reviews of IaC code in Terraform, CloudFormation, CDK, and Pulumi across 6 pillars for infrastructure and architecture assessments.
Audits Terraform codebases for security in IAM, networking, encryption, secrets, access control, and compliance. Use before production deploys, periodic audits, or new service reviews.
Audits IaC templates (Terraform/CloudFormation), app configs, Docker/Kubernetes manifests, and web server settings for security misconfigurations per OWASP and CIS benchmarks.
Share bugs, ideas, or general feedback.
데이터 보호, ID/접근 관리, 탐지 제어 관점에서 IaC 코드를 검토합니다.
| 심각도 | 탐지 유형 |
|---|---|
| Critical | 자동 탐지 |
검토 내용: IAM 정책이 최소 권한 원칙을 준수하는지 확인
Terraform 패턴:
# 취약 - 과도한 권한
resource "aws_iam_policy" "bad" {
policy = jsonencode({
Statement = [{
Effect = "Allow"
Action = "*"
Resource = "*"
}]
})
}
# 안전 - 최소 권한
resource "aws_iam_policy" "good" {
policy = jsonencode({
Statement = [{
Effect = "Allow"
Action = ["s3:GetObject", "s3:PutObject"]
Resource = "arn:aws:s3:::my-bucket/*"
}]
})
}
| 심각도 | 탐지 유형 |
|---|---|
| Critical | 자동 탐지 |
검토 내용: S3 버킷에 서버 측 암호화가 설정되어 있는지 확인
Terraform 패턴:
# 취약 - 암호화 없음
resource "aws_s3_bucket" "bad" {
bucket = "my-bucket"
}
# 안전 - KMS 암호화
resource "aws_s3_bucket_server_side_encryption_configuration" "good" {
bucket = aws_s3_bucket.example.id
rule {
apply_server_side_encryption_by_default {
sse_algorithm = "aws:kms"
kms_master_key_id = aws_kms_key.mykey.arn
}
}
}
| 심각도 | 탐지 유형 |
|---|---|
| Critical | 자동 탐지 |
검토 내용: RDS 인스턴스에 암호화가 설정되어 있는지 확인
Terraform 패턴:
# 취약
resource "aws_db_instance" "bad" {
storage_encrypted = false
}
# 안전
resource "aws_db_instance" "good" {
storage_encrypted = true
kms_key_id = aws_kms_key.rds.arn
}
| 심각도 | 탐지 유형 |
|---|---|
| Critical | 자동 탐지 |
검토 내용: 0.0.0.0/0 인바운드 규칙 확인 (SSH/RDP)
Terraform 패턴:
# 취약 - 전체 IP 허용
resource "aws_security_group_rule" "bad" {
type = "ingress"
from_port = 22
to_port = 22
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
# 안전 - 특정 IP만 허용
resource "aws_security_group_rule" "good" {
type = "ingress"
from_port = 22
to_port = 22
protocol = "tcp"
cidr_blocks = ["10.0.0.0/8"]
}
| 심각도 | 탐지 유형 |
|---|---|
| High | 자동 탐지 |
검토 내용: VPC에 Flow Logs가 활성화되어 있는지 확인
| 심각도 | 탐지 유형 |
|---|---|
| High | 자동 탐지 |
검토 내용: GuardDuty가 활성화되어 있는지 확인
| 심각도 | 탐지 유형 |
|---|---|
| High | 자동 탐지 |
검토 내용: KMS 키 자동 로테이션이 활성화되어 있는지 확인
| 심각도 | 탐지 유형 |
|---|---|
| Critical | 자동 탐지 |
검토 내용: S3 버킷이 퍼블릭으로 설정되어 있는지 확인
Terraform 패턴:
# 취약
resource "aws_s3_bucket_public_access_block" "bad" {
bucket = aws_s3_bucket.example.id
block_public_acls = false
block_public_policy = false
}
# 안전
resource "aws_s3_bucket_public_access_block" "good" {
bucket = aws_s3_bucket.example.id
block_public_acls = true
block_public_policy = true
ignore_public_acls = true
restrict_public_buckets = true
}
애플리케이션 코드 발견 시 owasp-review 스킬 참조 제안:
src/, app/, lib/ 등 애플리케이션 디렉토리 감지상세 패턴은 다음 참조:
| 항목 | PCI-DSS | HIPAA | SOC2 |
|---|---|---|---|
| IAM 최소 권한 | 7.1 | §164.312(a)(1) | CC6.3 |
| 데이터 암호화 | 3.4 | §164.312(a)(2)(iv) | CC6.1 |
| 네트워크 보안 | 1.3 | §164.312(e)(1) | CC6.6 |
| 항목 | 가중치 |
|---|---|
| IAM 최소 권한 | 20% |
| 데이터 암호화 (S3, RDS, EBS) | 25% |
| 네트워크 보안 | 20% |
| 탐지 제어 (GuardDuty, Flow Logs) | 20% |
| KMS 관리 | 15% |