既出のナレッジではありますが、Amazon InspectorをCloudFormationで実装する方法を本記事では公開します。
今時は例え個人利用であっても、セキュリティ対策は万全にしておくべきだとされています。
ですが、一々手作業でセキュリティ実装するのも面倒くさいので、テンプレート化して共通化しようという算段です。
なるべく費用の掛からないような設定にしますので、個人利用でAWSアカウントを持っている方も是非Inspectorを導入してみて下さい。
概要
本記事の目標
- CloudFormationでAmazon Inspectorを東京リージョンへ導入する。
- 導入する監視ルールは、以下の通りとする。
- 共通脆弱性識別子
- CIS オペレーティングシステムのセキュリティ設定ベンチマーク
- セキュリティベストプラクティス診断
- 導入する監視ルールは、以下の通りとする。
参考文献
- Amazon Inspector を CloudFormationで一撃設定してみる。(SNS設定手動)
- Amazon Inspectorとは?EC2インスタンスに利用できる脆弱性診断のメリットや機能
- 「セキュアで堅牢なAWSアカウント」を実現する CloudFormationテンプレート – ①サービスの有効化
CloudFormation
Amazon Inspectorについて
- Amazon Inspectorについて
- AWSのEC2インスタンスにおけるセキュリティレベルを診断するサービスのひとつ。
- EC2インスタンス周りのセキュリティ診断が出来る。
- ネットワーク到達可能性(Network Reachability)
- 脆弱性(CVE)の診断
- Center for Internet Security (CIS) ベンチマーク評価
- セキュリティベストプラクティス診断
- セキュリティルールについて
- Amazon inspectorには、リージョンによって診断できるセキュリティルールが異なります。
- 東京リージョンは下表の通りとなります。
※各リージョンのルールパッケージの 一覧は下記サイトに記載があります。
Amazon Inspector Classic ARNS for rules packages
ルールパッケージ名 | ARN | 備考 |
---|---|---|
共通脆弱性識別子 | arn:aws:inspector:ap-northeast-1:406045910587:rulespackage/0-gHP9oWNT | – |
CIS オペレーティングシステムのセキュリティ設定ベンチマーク | arn:aws:inspector:ap-northeast-1:406045910587:rulespackage/0-7WNjqgGu | – |
セキュリティのベストプラクティス | arn:aws:inspector:ap-northeast-1:406045910587:rulespackage/0-bBUQnxMq | – |
実行時の動作の分析 (ネットワーク到達可能性etc..) | arn:aws:inspector:ap-northeast-1:406045910587:rulespackage/0-knGBhqEu |
CloudFormation テンプレート
- 作成リソース
- IAM Role
- Inspector
- EventBridge
AWSTemplateFormatVersion: "2010-09-09"
Description: Amazon Inspector Sample Template
# ------------------------------------------------------------
# Resources
# ------------------------------------------------------------
Resources:
# -----------------------------------------
# IAM Role
# -----------------------------------------
# ServiceLink Role
ServiceLinkedRoleForInspector:
Type: AWS::IAM::ServiceLinkedRole
UpdateReplacePolicy: Retain
DeletionPolicy: Retain
Properties:
AWSServiceName: inspector.amazonaws.com
Description: A service-linked role required for Amazon Inspector to access your resources.
# EventBridge Role For Amazon Inspector
IAMRoleForInspectorEvents:
Type: 'AWS::IAM::Role'
Properties:
AssumeRolePolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Principal:
Service: events.amazonaws.com
Action: 'sts:AssumeRole'
Description: A role required for EventBridge to access Inspector.
Policies:
- PolicyName: !Sub 'DefaultSecuritySettings-AWSEventsInspectorPolicy-${AWS::Region}'
PolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Action:
- 'inspector:StartAssessmentRun'
Resource: '*'
RoleName: !Sub 'DefaultSecuritySettings-InspectorEvents-${AWS::Region}'
# -----------------------------------------
# Amazon inspector
# -----------------------------------------
# Inspector Target
InspectorAssessmentTarget:
DependsOn:
- ServiceLinkedRoleForInspector
Type: AWS::Inspector::AssessmentTarget
Properties:
AssessmentTargetName: DefaultSecuritySettings-Assessment-Target-All-Instances-All-Rules
InspectorAssessmentTemplate:
Type: AWS::Inspector::AssessmentTemplate
Properties:
AssessmentTargetArn: !GetAtt InspectorAssessmentTarget.Arn
DurationInSeconds: 3600
AssessmentTemplateName: DefaultSecuritySettings-Assessment-Template-Default-All-Rules
RulesPackageArns:
- arn:aws:inspector:ap-northeast-1:406045910587:rulespackage/0-gHP9oWNT
- arn:aws:inspector:ap-northeast-1:406045910587:rulespackage/0-7WNjqgGu
- arn:aws:inspector:ap-northeast-1:406045910587:rulespackage/0-YI95DVd7
- arn:aws:inspector:ap-northeast-1:406045910587:rulespackage/0-bBUQnxMq
# -----------------------------------------
# EventBridge
# -----------------------------------------
# EventBridge For Amazon Inspector
CloudWatchEventsForInspector:
Type: AWS::Events::Rule
Properties:
Description: !Join
- ''
- - Scheduled Inspector Assessment for
- !GetAtt InspectorAssessmentTemplate.Arn
- running every 7 day(s)
Name: Amazon_Inspector_Assessment
# Every Monday 9AM
ScheduleExpression: cron(0 9 ? * 1 *)
State: ENABLED
Targets:
- Arn: !GetAtt InspectorAssessmentTemplate.Arn
Id: CloudWatchEventsForInspector
RoleArn: !GetAtt IAMRoleForInspectorEvents.Arn
まとめ
後はAmazon inspectorが自動でセキュリティ評価を実行してくれるので、特に対応は不要です。
ConfigやGurdDuty等も導入しているようであれば、SecurityHUBを実装してセキュリティ集約をするのも一つの手かと思います。
手軽に強力なセキュリティサービスを導入できるよう、今後も工夫を重ねていこうと思います。
コメント