AgentSkillsCN

check-security

分析Terraform代码的安全漏洞与合规问题。在用户要求检查安全问题、审计基础设施代码或验证安全合规时使用。

SKILL.md
--- frontmatter
name: check-security
description: Terraformコードのセキュリティ脆弱性とコンプライアンスの問題を分析します。ユーザーがセキュリティの問題のチェック、インフラコードの監査、またはセキュリティコンプライアンスの検証を求めた場合に使用してください。

セキュリティチェックスキル

このスキルを使用して、Terraformコード内のセキュリティ設定ミス/ベストプラクティス逸脱を特定します。


実行手順

Step 1: 入力の確認

何を材料にレビューするかを明示します:

  • git diff(Terraform 配下)
  • terraform plan (JSON)(存在する場合)

Step 2: セキュリティ観点のチェック

観点チェック内容
公開範囲Security Group / ALB / RDS / S3 / CloudFront が意図せず public になっていないか
暗号化EBS / RDS / S3 / Secrets 等の暗号化が有効か
ログ/監査ALB access log、CloudTrail / Config 等が設計上必要なら有効か
最小権限IAM policy がワイルドカード過多(*)になっていないか
ネットワーク分離DB が public subnet に出ていないか、NACL / Route が意図通りか
秘密情報TFVars / コードにパスワード等が平文で入っていないか

レポート出力フォーマット

markdown
## 🔒 セキュリティチェック結果

### 🔴 重大(即時対応必須)
- **対象**: `ファイル名` (リソース名)
  - **問題**: 具体的なリスク
  - **修正案**: 
    ```hcl
    # 修正後のコード
    ```

### 🟡 中(対応推奨)
- ...

### 🟢 軽微(改善提案)
- ...

### ✅ 問題なし
確認済み項目のサマリー

代表的なセキュリティ問題と修正例

1. S3 パブリックアクセス

hcl
# ❌ 問題: パブリックアクセス可能
resource "aws_s3_bucket" "bad" {
  bucket = "my-bucket"
}

# ✅ 修正: パブリックアクセスブロック
resource "aws_s3_bucket_public_access_block" "good" {
  bucket                  = aws_s3_bucket.main.id
  block_public_acls       = true
  block_public_policy     = true
  ignore_public_acls      = true
  restrict_public_buckets = true
}

2. Security Group 0.0.0.0/0

hcl
# ❌ 問題: 全世界に SSH 開放
ingress {
  from_port   = 22
  to_port     = 22
  protocol    = "tcp"
  cidr_blocks = ["0.0.0.0/0"]
}

# ✅ 修正: 特定 IP に限定
ingress {
  from_port   = 22
  to_port     = 22
  protocol    = "tcp"
  cidr_blocks = ["203.0.113.0/24"]  # 社内 IP のみ
}

3. RDS パブリックアクセス

hcl
# ❌ 問題
publicly_accessible = true

# ✅ 修正
publicly_accessible = false

4. IAM ワイルドカード

hcl
# ❌ 問題: 過剰な権限
{
  "Effect": "Allow",
  "Action": "*",
  "Resource": "*"
}

# ✅ 修正: 最小権限
{
  "Effect": "Allow",
  "Action": ["s3:GetObject", "s3:PutObject"],
  "Resource": "arn:aws:s3:::my-bucket/*"
}

注意事項

  • このスキルは「レビューの観点」を提供するドキュメントです
  • 結果は推論ベースなので、網羅性・厳密性が必要な場合は Checkov 等のスキャナ導入を検討してください