AWS cloudtrailの「ログファイルの検証を有効化」の機能を試してみる
cloudtrailの「ログファイルの検証を有効化」の有効化にはするのですが、
機能詳細を確認することがありませんでした。
先日触ってみたので備忘で残したいと思います。
cloudtrailの赤枠部分のファイルを書き換えてみました。
Validate-logsを試してみる
上記ファイルを修正し、validateすると書換が発生したログファイル分かります。
aws cloudtrail validate-logs --trail-arn arn:aws:cloudtrail:ap-northeast-1:xxxxxxxxxx:trail/aws217-test --start-time 20190113T19:00:00Z Validating log files for trail arn:aws:cloudtrail:ap-northeast-1:xxxxxxxxxx:trail/awsxxx-test between 2019-01-13T19:00:00Z and 2019-01-15T03:45:33Z Log file s3://awsxxx-test-cloudfront-in-test6/test-prefix/AWSLogs/xxxxxxxxxx/CloudTrail/ap-northeast-1/2019/01/15/xxxxxxxxxxx_CloudTrail_ap-northeast-1_20190115T0110Z_eKpIcz4LwCJIlM6d.json.gz INVALID: invalid format Results requested for 2019-01-13T19:00:00Z to 2019-01-15T03:45:33Z Results found for 2019-01-13T19:56:11Z to 2019-01-15T01:56:11Z: 31/31 digest files valid 192/193 log files valid, 1/193 log files INVALID
検出可能な項目は下記ドキュメントに一覧化されています。
docs.aws.amazon.com
変更内容までは追えないようなので、
このあたりを追うのであれば下記との組合せが必要そうです。
AWS lambdaからGCPのSDKを使うlambda layerを作成
先日、AWS LambdaからGCPのSDKを利用したいと思い、
Layerを固めることがありました。
その際エラーが出てしまい解決までにハマってしまったので、
ブログに書こうと思いました。
エラー内容
固めたzipをlambda Layerとしてアップしたところ
Runtimeエラーとなってしまいました。
実行環境はAmazonLinux2です。
Runtimeエラーの対策
Lambda RuntimeのEC2(AmazonLinux)でpython3系を設定
AWS WAF 海外IPを拒否しGoogleのクローラ(bot)は許可する設定
Googleのクローラの条件
海外IPアクセスの条件
AWS WAFを設定
まず1つ目のCondition作成として「string and regex match」を選択します
「Googlebot」をuser-agentヘッダに含む場合の条件を作成します。
上記のように入力しAdd filterボタンを押します。
Filterに追加されたらCreateボタンを押します。
条件作成2個目
2つ目の条件は国別の制限をします。Geo matchを選択します。
日本を登録します
ルール作成
上記で作成した条件を元にルールを作成します
上記で作成した条件を設定します。
この時、WAFのデフォルトルールを
Allowにしたかったので下記のようにルールを設定しています。
条件の整理
B=「日本からのアクセス」
=「User-agentにGooglebotを含まない」かつ「海外アクセスである」
- 「User-agentにGooglebotを含まない」かつ「海外アクセスである」場合ブロック
- それ以外はAllow(許可)
ド・モルガン風に考える
検証してみる
注意点
- WAFログを定期的に解析しアクセス元IPをDNSリバースルックアップ[※1]を実施
- なりすましのアクセス元IPを判定する
- 2のIPをWAFのIP拒否リストに設定する
AWS KMS の概要とエンベロープ暗号化について説明してみる
最近AWS KMSについて聞かれることがあったので
ブログにまとめてみようと思います。
KMSってなに?をざっくり
- 対象鍵を安全に保管してくれるサービス
- 各AWSサービスのデータ暗号化・複合化する機能として連携(S3、EBS等)
- うるさいセキュリティのポイントをある程度抑えてくれる(キーローテーション、暗号化鍵の方式を決定)
前提知識:対称鍵とは
キーの種類
下記に簡単な説明を書きます。
・AWS所有
見ることすらできない鍵です。AWSが利用します。
基本的に触れないので理解すべきこともないです。
・AWS管理
もっともよく使う鍵です。
おおよそのケースで単純に暗号化したいだけならこの鍵を利用します。
デフォルトの鍵です。aws/service-nameの形式で存在します
ある程度AWSが用意した枠組みでしか管理ができないため
細かい制御が必要な場合は後述のカスタマー管理のキーを利用します。
例えば、クロスアカウントで共有が不可のため、
複数アカウントが関連するときは利用できないケースが多いです
・カスタマー管理
・データキー
上記のように運用することで下記を実現できます
・容量大データも一律して同じ大きさのDatakeyを利用し暗号/複合管理
・外部に漏れるとマズイ情報(Plaintext data key)は必要な時のみ取出し利用
https://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/concepts.html#enveloping
エンベロープ暗号化をCLIで一通りこなしてみる
AWS S3のオブジェクトを時間指定でパブリック公開する
検証内容
AWS:VPCピアリングでうまく接続できない時に確認したいこと
VPCピアリングでうまく接続できない時に確認したいことを、自分でもたまに忘れそうなのでメモがてら書きます。
セキュリティグループ、ルートテーブル、NACL
この辺りは当然ですね。丁寧に確認しましょう。
名前解決ができるかどうか
RDS等の接続ができない場合は、こちらが怪しいです。
https://docs.aws.amazon.com/ja_jp/vpc/latest/peering/modify-peering-connections.html#vpc-peering-dns