Help us understand the problem. What is going on with this article?

AWSのセキュリティ系サービスをザクっとまとめた

こんにちは。

「AWSのセキュリティサービス、たくさんあってよーわからんわ」ってなることありませんか?

先日AWS認定セキュリティの学習をしていた時に、簡単にまとまっているものがあると嬉しいなあと思ったので、ザクっとまとめました。これで概要を掴んだ上で深掘りしていただく、ような使い方をしていただけると嬉しいです。

■AWS Config

AWSアカウントが持つリソース、およびソフトウェアの設定状況などを履歴として管理、および変更を監視することができるサービス

AWS Configの設定を有効化するだけで、いつどのリソースが作成されて、どのように変更されたか、監視することができる。また、変更をトリガとしてSNS経由で任意の宛先に通知する機能を有する。
上記に加え、SystemsManagerとの統合によってEC2インスタンスのソフトウェアの状態を管理することもできる。

■AWS SystemsManager

Amazon EC2 インスタンス、オンプレミスサーバーと仮想マシンや他の AWS リソースを大規模に設定および管理する機能の集合体となるサービス

Run Command,セッションマネージャーによるSSHからの脱却、PatchMagagerによるパッチ適用状況の取得・管理と適用の計画・実行、パラメータストアによる共通的パラメータ(DB接続状況など)の管理、などを実現できる。
後述のAmazon Inspectorと組み合わせて脆弱性を検知し、PatchManagerのパッチ適用ポリシーを更新し、全体に対して反映する、といった運用フローなどが考えられる。

■AWS CloudTrail

AWSリソースへのManagementConsoleによる操作やAPIリクエストの証跡を保存・管理するサービス

管理イベント(EC2の作成、変更、削除など)とデータイベント(S3へのGetObject)の双方を記録することができる。
また、CloudTrailの設定によって、Amazon S3、Amazon CloudWatch Logs、Amazon Amazon CloudWatch Events に CloudTrail イベントを配信できる。
これにより、セキュリティオートメーションや管理の効率性を向上することができる。
不正な利用などを検知・対処するため、AWSアカウントの全てのリージョンで有効化することが推奨されている。

■AWS Key Management System

暗号化するための鍵を管理するサービス

KMSにはマスターキー・データキーという概念が存在する。
マスターキーはデータキーを暗号化するもの、データキーはデータそのものを暗号化するものである。
利用の流れとしては、

  1. マスターキーの作成(CreateMasterKey)
    マスターキーがAWS側に作成される
  2. データキーの生成(GenerateDataKey)
    生のデータキーと暗号化されたデータキーがユーザに返却される
  3. データの暗号化@ローカル
    2で取得した生のデータキーを使ってデータを暗号化する、 暗号化後、生のデータキーは速やかに廃棄する 暗号化されたデータ・暗号化されたデータキーの双方を大事に保管する
  4. データキーの復号
    暗号化されたデータキーとマスターキーのIDを利用して、AWSにデータキーの復号化を要請する
  5. データの復号@ローカル
    4で取得したデータキーを使って暗号化されたデータを復号する

ポイントは、"生"のデータキーは必要なタイミングのみ保持する仕組みという点である。もし暗号化データや暗号化データキーが流出しても、データそのものを見ることができない仕組みになっている。
また、マスターキーの運用については、定期的にローテーションできたり、ユーザ所有の鍵をインポートできたりする。ユーザ所有の鍵をインポートする際は、KMSのエイリアスを利用することでアプリケーションへの影響を低減することができる。

■Amazon Inspector

Amazon EC2内の脆弱性を検出して通知するサービス

InspectorエージェントをEC2にインストールすることで、インターネットへの公開状況, CVEへの対応状況, CISベンチマークによる評価, 不適切なLISTENポート, Rootプロセスの状況など、EC2のホストとしてのセキュリティ対策状態を評価できる。
0.15~0.30USD程度のコストで1度診断することができるため、ASG用のAMI作成フローに組み込むなどの運用が良さそう。
なお、L7レイヤでの脆弱性を検知/遮断するものではないので、そういった場合はAWS WAFやその他の3rd Partyソリューションを組み合わせて利用する必要がある。

■Amazon GuardDuty

VPCフローログおよびAWS CloudTrailイベントログから脅威を検出して通知するるサービス

ManagementConsoleもしくはCLIから設定を有効化することで使用を開始できる。

例えば不正なAPIコールの発生やSSH用のポートがInternetに公開されていることの検知などの脆弱性を、複数のアカウントにわたって自動的に監視することができる。
GuardDutyが検知した脆弱性は5分に1度CloudwatchEventに送信されるため、特定のメールアドレスに通知したり、Lambdaで実装した独自機能で処理することもできる。(攻撃者のIPアドレスをAWS WAFのブラックリストに追加するなど)

■AWS Organizations

複数のAWSアカウントを横断的に管理するためのサービス

サービスコントロールポリシー(SCP)と呼ばれる機能で、ユーザが所属するグループを作成し、そのグループが操作可能なサービスを制限することができる。

利用の流れとしては、

  1. OUと呼ばれる組織ごとの単位を作成
  2. IAMユーザをOUに参画
  3. OUが操作可能なサービス・アクションを指定

となる。
例えば、ルート以外のOUにおいてCloudTrail,AWS Organizations,AWS Configの操作を禁じる、などのポリシーが想定される。
ルートに適用されるSCPは、その権限を子となるOUにカスケードされる。子OUは、親ルートから下位のアクセス権限と、OUにアタッチされているSCPの数学的な共通部分(AND)を取得し、その結果が子OUに適用されるポリシーとなる。

サービスコントロールポリシーの利用によって、組織のコンプライアンスに準ずるセキュリティルールを効率的に管理することができる。

■Amazon Macie

機密データを検出、分類、保護するための機械学習によるセキュリティサービス

S3に保持されているデータに、個人情報や知的財産などの機密データが含まれないか検出・レポートできる。具体的には、FIPS 199 などの業界標準に基づいて"フルネーム"、"郵送先住所"、"E メールアドレス"、"クレジットカード番号"などが存在することを検出することができる。Amazon Macieでは、Macie アラートに変更が行われた際、CloudWatch イベント に基づいて通知が送信される。
Amazon Macieの利用により、セキュリティコンプライアンスへの積極的な対応と、データセキュリティに対する予防的統制を実現できる。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away