テックカリキュラム

セキュリティの実務徹底 ── AWSでの堅牢なアクセス制御と機密情報保護

セキュリティの実務徹底 ── AWSでの堅牢なアクセス制御と機密情報保護

はじめに

AWSを安全に運用するうえで、セキュリティ設定は一度きりではなく、常に見直し・改善されるべき「継続的な運用領域」です。IAMロールやポリシーだけでなく、鍵やシークレット、操作ログの管理も含めたトータルなセキュリティ設計が必要です。

本記事では、AWSセキュリティを実務レベルで徹底するための4つの柱を解説します:

  • IAMアクセスアナライザーとポリシーシミュレーター
  • AWS KMSによる暗号鍵の管理とローテーション
  • Secrets ManagerとParameter Storeの安全な運用
  • CloudTrail + GuardDuty + Security Hubの統合運用

1. IAMアクセスアナライザーとポリシーシミュレーター活用

IAMアクセスアナライザー

IAMアクセスアナライザーは、外部からアクセス可能なリソースを検出し、意図しない公開設定を早期に発見するためのツールです。

# アクセスアナライザーの作成(CLI) aws accessanalyzer create-analyzer \ --analyzer-name my-analyzer \ --type ACCOUNT 

検出対象の例:

  • S3バケットが全公開設定になっている
  • KMSキーに他アカウントからのアクセスが可能
  • IAMロールがクロスアカウントAssumeされている

IAMポリシーシミュレーター

アクセス権の検証において非常に有効なのが IAMポリシーシミュレーターです。
「このIAMユーザーは、特定の操作を本当に実行できるか?」を事前に検証できます。

# 例:指定ユーザーに対するS3のGetObject許可をシミュレート aws iam simulate-principal-policy \ --policy-source-arn arn:aws:iam::123456789012:user/test-user \ --action-names s3:GetObject \ --resource-arns arn:aws:s3:::my-bucket/* 

ポリシーの誤設定や予期せぬアクセス許可のリスクを事前に排除できます。


2. AWS KMSによる暗号鍵の管理

KMS(Key Management Service)とは

AWS KMSは、暗号化・復号化に必要な暗号鍵(CMK: Customer Master Key)を安全に管理するサービスです。S3, RDS, Lambda, EBSなど、主要サービスとシームレスに連携します。

ベストプラクティス

  • カスタマー管理キー(CMK)を作成し、用途ごとに分離
  • CloudTrailでKMSキーの利用状況をログ化
  • 自動ローテーションを有効化して鍵の長期利用を防止
# KMSキーのローテーションを有効にする aws kms enable-key-rotation --key-id <KMSキーARN> 

IAMポリシーとキーのポリシー

KMSでは、IAMポリシーとKMSキー自体のポリシーを組み合わせて制御します。設定ミスを防ぐためには、ポリシーシミュレーターでの確認を推奨します。


3. Secrets ManagerとParameter Storeの徹底運用

AWS Secrets Manager

Secrets Managerは、データベース認証情報、APIキー、OAuthトークンなどの機密情報を安全に保存・取得・ローテーションできるサービスです。

特徴:

  • 自動ローテーション機能あり
  • KMSでの暗号化が標準
  • IAMでアクセス制御可能(IRSAとの連携も◎)
# シークレット作成例(CLI) aws secretsmanager create-secret \ --name MyDBSecret \ --secret-string '{"username":"admin","password":"P@ssw0rd"}' 

Systems Manager Parameter Store

Parameter Storeは、設定値や非機密の情報を中心に管理するのに向いています。SecureStringタイプを使えば、Secrets Managerに近い機能も実現可能です。

# SecureStringパラメータ登録 aws ssm put-parameter \ --name "/prod/db/password" \ --value "MySecurePassword123" \ --type SecureString \ --key-id alias/aws/ssm 

使い分けの目安:

用途推奨サービス
DBパスワード/APIキー(自動ローテーションしたい)Secrets Manager
アプリ設定値/環境変数Parameter Store

4. CloudTrail + GuardDuty + Security Hubの統合

CloudTrail:操作ログを全記録

CloudTrailは、AWS上でのすべての操作(APIコール)を記録するサービスです。誰が、いつ、どのリソースに何をしたかを確認できます。

ログはS3へ保管し、Athenaで分析可能。さらに、EventBridge連携で異常操作時に自動通知も構築できます。

GuardDuty:不正アクセス検知

GuardDutyは、ログ(VPC Flow Logs、CloudTrail、DNSログ)を分析し、マルウェアや外部からの攻撃兆候を検知するサービスです。

  • SSHブルートフォース
  • 不審な地理からのAPIコール
  • 既知の悪性IPとの通信

Security Hub:脅威情報の統合管理

Security Hubは、GuardDutyやInspector、Config、MacieなどAWSセキュリティサービスからのFindings(検出結果)を統合可視化するサービスです。

# Security Hubの有効化 aws securityhub enable-security-hub --region ap-northeast-1 

運用例:

  • GuardDuty → 脅威検知
  • EventBridge → Lambda実行(インスタンス隔離)
  • Security Hub → セキュリティダッシュボードで一元管理

これら3サービスの統合により、検知 → 可視化 → 自動対応 というセキュリティ運用の自動化が実現できます。


まとめ

AWSのセキュリティ強化は、単なる設定だけでなく日々の見直しと仕組み化が重要です。本記事で紹介した4つの観点を軸に、継続的に強化していきましょう。

  • IAMアクセスアナライザーとシミュレーターで最小権限を確認・検証
  • KMSで鍵の管理・ローテーションを自動化
  • Secrets ManagerとParameter Storeでシークレットを安全に保管
  • CloudTrail + GuardDuty + Security Hubで可視化と自動対応を構築

次章では、これらセキュリティ施策をTerraformでコード化し、セキュリティ設定の自動監査・自動修復につなげる手法を紹介します。