IaCセキュリティ
🔥 Vibe プロンプト
「適用前にTerraformコードをセキュリティスキャン。ポリシーアズコードを適用。」
Checkovスキャン
brew install checkov
checkov -d terraform/
checkov -d k8s/
Checkov結果
合格: 45, 失敗: 3
CKV_AWS_21: S3バケットACLがパブリック読み取り
CKV_AWS_23: S3ブロックパブリックアクセスなし
CKV_AWS_52: EC2詳細モニタリングなし
Terraformセキュリティチェック
# ✅ 良い例:暗号化、バージョニング有効
resource "aws_s3_bucket_server_side_encryption_configuration" "data" {
rule {
apply_server_side_encryption_by_default {
sse_algorithm = "AES256"
}
}
}
# ❌ 悪い例
resource "aws_db_instance" "db" {
publicly_accessible = true # 絶対にしない!
}
OPAポリシーアズコード
package terraform
deny[msg] {
resource := input.resource.aws_s3_bucket[_]
resource.config.acl == "public-read"
}
CI/CDでのIaCスキャン
- uses: bridgecrewio/checkov-action@v12
with:
directory: terraform/
soft_fail: false
ベストプラクティス
- 適用前に毎回IaCスキャン
- ポリシーアズコード(OPA, Checkov)
- Terraform状態を暗号化S3に保存
- リモート状態+ロック使用
- IaCにシークレットをハードコードしない
- プロバイダーバージョンを固定
- 一貫性のためにモジュール使用
重要なポイント
- コアコンセプトをしっかり理解する
- ハンズオンコード例で実践する
- 実世界の問題に応用する
- 演習で知識を強化する
さらに学ぶ
- 公式ドキュメント
- GitHubのオープンソースプロジェクト
- コミュニティフォーラムとディスカッション
- 関連コースとチュートリアル