S3バケットのセキュリティをチェックするLambdaを実装してみた
やること
今回はそれぞれ許す相手をDynamoDBに保存して、LambdaでDynamoDBにない項目にアクセス許可が出ていないかをチェックした。言語はPython3.6です。
DynamoDBのテーブルはそれぞれ項目が'account_id'でアクセスを許可するアカウント番号を、'grantee_id'でACLを許可するサービスのIDを入力しておきます。
コード
くそ長くて読みづら...(´・ω・`)
コードの置き場所はここです
S3PolicyCheck/S3PolicyCheck.py at master · rioner/S3PolicyCheck · GitHub
今回はテーブル名を分けて作成しましたが、一緒にしてしまってもよいでしょう。
バケットポリシーが無い場合にバケットポリシーを読み取ろうとするとエラーが発生するので処理必須です。
コード内では最終結果をprintしてますが本来はメールで運用者に投げる方式にしましょう。
以上です。
S3バケットのセキュリティはおろそかにしないでちゃんと管理しましょう!