Amazon GuardDuty について調べたメモ
Amazon GuardDuty について調べたことを軽く纏めておく。
Amazon GuadDuty とは
マネージド型の脅威検出サービスで、以下3つのデータソースを監視する。
- VPC Flow Logs
- 有効にしていなくても検出はされるらしい。が、そもそも有効化しておく方が好ましい
- DNS Logs
- EC2 からのクエリログが対象
- CloudTrail Events
- 予め有効化しておく
設定方法
マネコンからポチッと有効にするだけ。脅威検出時に通知させるには CloudWatch Events から SNS にでも飛ばせば良さそう。イベントパターンは以下のようになる。
{ "source": [ "aws.guardduty" ], "detail-type": [ "GuardDuty Finding" ] }
信頼リスト・脅威リスト
基本的には自動で悪意のある通信を検知してくれるが、予め信頼IPアドレスリスト、脅威IPアドレスリストを設定しておくことで検出動作をカスタマイズできる。
動作テスト
CFn が用意されているので、スタックを作成すると動作テスト用のリソース(VPC、サブネット、EC2インスタンスなど)が作成される。
但し、AWS に対するペネトレーションテスト(侵入テスト)は事前の申請が必要。詳しくは以下を参照。
他アカウントの検知結果を1アカウントへ統合
Black Belt のP39 以降を参照。
参考
www.slideshare.net
AWS CLI と jq で Route Table の ルート一覧を CSV形式で取得する
VPCのRoute Tableのルート一覧をスプレッドシートに貼り付けて確認したかったのでメモ。
実行環境
結論
こんな感じ。<route-table-id>
に取得したいルートテーブルのIDを指定する。
aws ec2 describe-route-tables --route-table-ids <route-table-id> | jq -r '.RouteTables[0].Routes[] | [.DestinationCidrBlock, .DestinationIpv6CidrBlock, .DestinationPrefixListId, .EgressOnlyInternetGatewayId, .GatewayId, .InstanceId, .InstanceOwnerId, .NatGatewayId, .TransitGatewayId, .LocalGatewayId, .NetworkInterfaceId, .Origin, .State, .VpcPeeringConnectionId] | @csv'
結果
"10.100.0.0/16",,,,"local",,,,,,,"CreateRouteTable","active", "0.0.0.0/0",,,,"igw-0365cb32e1725b8d",,,,,,,"CreateRoute","active",
- 出力されるカラムは、
DestinationCidrBlock, DestinationIpv6CidrBlock, DestinationPrefixListId, EgressOnlyInternetGatewayId, GatewayId, InstanceId, InstanceOwnerId, NatGatewayId, TransitGatewayId, LocalGatewayId, NetworkInterfaceId, Origin, State, VpcPeeringConnectionId
- 最後の
@csv
を@tsv
に変えれば tsv で出力できる
参考リンク
IKEAのテーブルトップがBRIWAXで復活した
最近、自宅の作業環境を整えている。 テーブルは何年使ったかも分からないIKEAのテーブルトップと架台を使っているんだけど、天板の汚れが気になるようになってきた。
こんな感じのやつ。無垢材で汚れやすい。 www.ikea.com www.ikea.com
買い換えるか悩んでいたところ、オイルステインで復活出来そうなので試しにやってみることにした。 使ったのはこれ。DIYerには定番らしい。
BRIWAX(ブライワックス) トルエンフリー ジャコビアン 370ml
- メディア: Tools & Hardware
サンダーで下処理
毛羽立ちや汚れを取り除くため、ヤスリがけをする。ヤスリ紙は目の粗さがあるが、勘で#240をチョイスした。
BRIWAXを塗布する
BRIWAXを適当な布に付けて、木目に沿って塗布する。
最後に乾いた布で磨いて作業終了。
完成
素人が雑に塗っても結構うまくいったのでBRIWAXはおすすめ。 Amazonだと370mlくらいのしか売っていないんだけど、テーブルトップ一枚なら多分100mlくらいで十分。メルカリで小分け販売している人がいるのでそちらを利用するのもありかもしれない。
AWS Lambda で /tmp を使う場合は tempfile モジュールで 立つ鳥跡を濁さず
Lambda を使っていると、時々ローカルにファイルを作成したい時がある。そんな時は /tmp
配下が使えるが、注意すべき点として以下がある。
- 起動されたコンテナは再利用される場合がある(前回実行時のファイルは削除されない)
- 容量は512MBまで
対策として作成するファイル名に uuid を付けたり、処理開始・終了時に /tmp
配下を削除していたが、tempfile
モジュールの TemporaryDirectory
を使えばよりスマートに後始末が出来る。
import tempfile import os import glob def handler(event, context): # /tmp配下に一時ディレクトリを作成 with tempfile.TemporaryDirectory(dir="/tmp") as d: print(os.listdir("/tmp")) # 一時ディレクトリ配下にファイルを作成 with open(f"{d}/hello.txt", "w", encoding="utf-8") as f: f.write("world") print(glob.glob(f"{d}/*")) # withを抜けると自動で一時ディレクトリは削除される print(os.listdir("/tmp"))
with tempfile.TemporaryDirectory(dir="/tmp") as d:
で /tmp
配下に一時ディレクトリが作成され、withを抜けると自動で削除される。
START RequestId: 26488f5f-4c6f-4451-a1f5-9164b1a0ad7d Version: $LATEST ['tmpl4mx8879'] ['/tmp/tmpl4mx8879/hello.txt'] [] END RequestId: 26488f5f-4c6f-4451-a1f5-9164b1a0ad7d
tmpl4mx8879
という一時ディレクトリが作成され、自動で削除されていることが確認できる。