はじめに
Security HubのルールのAWS Foundational Security Best Practicesの内容を眺める機会がありました。
https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/securityhub-standards-fsbp-controls.html
こういうルールがあるのかぁと意識できていなかった部分もあるので、それらを中心に感じた分類分け書いてみます
なお、セキュリティ要件やシステム要件と照合し、適切に設定することが本筋ではあるので、一旦、個人の感想と思ってもらえればと思います。
書く内容
ルールを個人的な観点として以下3個にグループ化してみました。
- だいたい組み込んでいるんじゃないか系
- あんまり意識されていなくてやってないんじゃないか系
- へぇこれもベストプラクティスに含まれるんだ系
またこれらに分類されていないものは特段コメントはいらないかな、と思ったものです。
主に含めていないものは、暗号化、パブリックIPやパブリックセグメントへの配置、WAFの設置など、
構成で気をつけているだろうな、と思うものや暗号化要件、権限の要件によるな、と思ったものは記載していません。
だいたいやってるんじゃないか系
Guard Duty
- 機能を有効化する
AWS Config
- 機能を有効化する
CloudFront
- OAIを有効化
ALB
- HTTP ヘッダーを削除するように設定する
- Desyncモードを防御的、最も厳格に設定する
AutoScaling(EC2)
- LBに紐付けられている場合、ヘルスチェックはALBに設定する
- インスタンスではなくLBをヘルスチェックに設定
IAM
- IAMカスタムマネージドポリシーにはワイルドカードで許可してはいけない
- "Effect": "Allow" と "Action": "Service:"でワイルドカードで許可はしない
RDS
- 拡張モニタリングを有効化する
- ログの記録を有効化する
ECS
- シークレットな環境変数は暗号化パラメタストアで渡す
API Gateway
- ログを有効化する
- X-Rayトレースの有効化する
あんまり意識されていなくてやってないんじゃないか系
Lambda
- VPC Lambdaは複数AZに紐付ける
CodeBuild
- 特権モードを有効化にしない
EC2
- VPCのセキュリティグループはインバウンドとアウトバウンドはルールを含めない
- 利用しないだけでなく、そもそもルールを入れない
ECS
- ContainerInsightを有効化にする
- 何をみたいか次第ですが、、、
EFS
- バックアップを有効化する
IAM
- IAMユーザ単体にIAMポリシーをつけない
- GroupやRoleから継承させるのがベストプラクティスでIAMユーザにはつけない
へぇこれもベストプラクティスに含まれるんだ系
CloudFront
- オリジンフェイルオーバーを設定する
- オリジン自体を冗長化しようというもので個人的には意識したことありませんでした。
CodeBuild
- GitHubやBitBucketのURLにOAuthを利用する
DynamoDB
- オートスケーリングを有効化する
TGW
- 自動でアタッチメントで許可する
- 意図しないルールをいれないため、、ですかね
ECR
- イメージスキャンを有効化する
- コンテナのセキュリティの意識付けるものが多くなってきたので組み込まれたんですかね(2022/7の直近のアップデートで入っています)
- ライフサイクルポリシーを設定する
- リソース利用料の抑止することを意識しているのでしょうか
NetworkFirewall
- NWFWのポリシーには必ずルールを1つ入れる
- 意図としては空のルールを入れずに混乱を招かないような形
RDS
- IAM認証を設定する
- 設定している案件に出会ったこと無いので意外でした
- RDSのポートはデフォルトのポートを利用しない
- デフォルトのポートを利用しないって考えたことありませんでした
S3
- ライフサイクルポリシーを設定する
- 必要があれば設定するイメージでリソースの過剰利用を抑えたりするために含めてるんでしょうかね
EC2
- SSMで管理する
- コンプライアンスステータスがCOMPLIANTである
- ここらへんも含まれるんですねぇ、パッチ適用など厳密に管理する仕組みを設計しないといけないですね
感想
当たり前にやっているよ、という部分もあるかと思いますが、
RDS、ECR、SG、S3のところはそうなんだぁと思いました。
特に暗号化、権限周りを意識したものが中心に組み込まれていました。
中でもCloudFrontのオリジンフェイルオーバーについてはそもそも機能自体イメージしたことありませんでしたが、
新たな情報を学ぶきっかけにもなりました。
通常の標準化のルールとして組み込むにはもちろん過剰かな、と思うところもありましたが、
当たり前にやってもいいんじゃないかな、と思う部分もあったので良い学びでした。