管理統制もLambdaで!
-
Upload
mamoru-ohashi -
Category
Technology
-
view
689 -
download
2
Transcript of 管理統制もLambdaで!
Mamoru Ohashi@mamohacy
@mamohacy@NERF22#20150915
管理統制も Lambda で !~ AWS による AWS 自身の管理統制の自動化 ~
2016.01.21
@mamohacy@NERF22#20150915 2
大橋 衛 ( オオハシマモル )1974/10/01(41 歳 )AWS Solution Archtect(associate)
ずっとエンタープライズ畑アプリ開発エンジニア 12 年インフラ設計エンジニア 4 年2013 年 AWS に出会い衝撃を受ける2016 年 1 月より某社にてAWS コンサル / セキュリティ監査業務に従事家族:妻、娘2人趣味:スノーボード、読書
絶賛本名プレイ中
@mamohacy
http://blog.mamohacy.tribrid-jp.com/
自己紹介
@mamohacy@NERF22#20150915 3
私の所属部門の担当業務
AWS まわりの各種管理統制・アカウント管理・セキュリテイガバナンス・利用料金管理
メンバー少ない (15 システム / 月 600 万円 → 5 人でメンテ)運用の自動化・監査の自動化は必須(やんないと死ぬ・・・)監査自動化+メール通知+ ChatOps
このへんに
使ってます!
@mamohacy@NERF22#20150915 4
セキュリティガバナンス?
@mamohacy 5
【参考】 CloudTrail フィルタ
• CloudTrail のログ内容をリアルタイムでフィルタリング• 条件一致したレコードが見つかった際に既定のアクションを実行• アクションにはメール発出の他に自作プログラムの起動も指定可能
CloudTrail CloudWatchLogs
CloudWatchMetrics Filter
+ +
@mamohacy 6
発生内容 検知手段 対策
IAM ユーザーへのアクセス権限設定の追加・変更・削除 CloudTrail フィルタ メール通知
IAM グループへのアクセス権限設定の追加・変更・削除 CloudTrail フィルタ メール通知
IAM アカウント管理統制
IAM User
追加 / 更新削除 ( 紐付けの解除 )
IAM Group
所属
IAM Policy
追加 / 更新
削除 ( 紐付けの解除 )
(アクセス権限設定)
作成 削除
除外
IAM ユーザーの追加と削除ならびにグループへの所属と除外は権限としてデフォルト許可。それ以外の操作は運用で禁止とするが、万が一実行された場合に備えこれを検知できる仕組みも具備する。
@mamohacy 7
How to Use Lambda!?当部のアカウント開発部のアカウン
ト
@virginia @virginia
@tokyo
共通機能 共通機能
不正な権限操作が行われていないか?そもそも IAM の権限に IAM の権限操作を付与していない (root アカウントだけが可能)我々が操作するときは周知して実行する JSON->TXT 変換
アカウント名付与当部運用者へメール通知
@mamohacy 8
発生内容 検知手段 対策
root アカウントによるマネジメントコンソールへのログイン CloudTrail フィルタ メール通知
IAM アカウントによるマネジメントコンソールへの連続ログイン失敗
CloudTrail フィルタ メール通知
不許可ロケーションからのログイン IAM ポリシー設定 ブロック(※ )
不正ログイン対策
User
User
User
root ログインの成功
IAM ログインの連続失敗 (3 回 )
不許可ロケーションからのログイン
※ マネジメントコンソールへのログインは可能だが AWS の全リソースにアクセス不可状態となる
@mamohacy 9
How to Use Lambda!?当部のアカウント開発部のアカウン
ト
@virginia @virginia@tokyo
共通機能 共通機能
IAM ログインの失敗を検知
同一ユーザー& n 分間でx 回連続?
JSON->TXT 変換アカウント名付与
当部運用者へメール通知
個別機能共通機能
@mamohacy 10
発生内容 検知方法 / 対策 通知方法
ログの不正読み取り SSE-KMS による暗号化 ブロック
ログの不正削除 削除時の MFA 必須化設定バケットポリシー設定
ブロック
ログの不正改竄、持ち出し IAM アカウントのアクセス権限設定
ブロック
CloudTrail ログへのアクセス権限設定変更 独自構築(※1) ブロック&メール通知
CloudTrail ログ保全
User
不正読み取り
不正削除 / 不正改竄
不正改竄・不正持出し
アクセス権限設定変更CloudTrail ログ
暗号化
※ 2:アクセス権限設定のログを定期検査し、異常が見つかった時点で強制的に元の権限に戻したうえメール通知も行う
CloudTrail ログは旧来でいうところのカメラ映像や入退室ログに相当するため改竄や持ち出しについても厳重に管理します
(永年保存)
@mamohacy 11
How to Use Lambda!?当部のアカウント開発部のアカウン
ト
@virginia @virginia@tokyo
共通機能 共通機能
• 1日 1 回定期実行• CloudTrail関連の権限が付与
されていないか、全ポリシー / ロール / アタッチ状態をチェック
• 問題があれば強制排除& SNS呼び出し
JSON->TXT 変換アカウント名付与
当部運用者へメール通知
個別機能
@mamohacy@NERF22#20150915 12
料金管理
12
全管理対象アカウントの料金を常時監視・予算との乖離がないか?・急激な利用費上昇がないか・一定金額を超えてからでは遅い
日々のチェックが重要、だけど・・毎回コストエクスプローラーでちまちま・・とかやってられない!
@mamohacy 13
How to Use Lambda!?
• 1日 1 回定期実行• Billing を取得する別の
Lambda Function を Invoke• 受け取った値を整形して
WebHook を Call(Curl)
CloudWatch の Billing情報を取得して返すだけ
各アカウント1つのチャネルにアカウント毎にその日の料金が吐き出される・前々日との伸び率・前日の費用・前々日の費用・当月の合計費用
@mamohacy 14
まとめと感想
SNS->Lambda の組合せは至る所で使える魔法の杖処理の細かい単位で Lambda を組んでいくのはあり
• 合計値算出処理• JSON->TXTパース• etc
同期処理が深くなるのはバッドプラクティス?