Slide 1

Slide 1 text

AWS RDK 〜AWS ConfigのカスタムルールをLambdaで書 くときに使うツールキット〜 JAWS-UG⼤阪 「AWSのセキュリティサービス&ソリューション座談会」 株式会社サーバーワークス 森 ⼤樹 2023/08/31

Slide 2

Slide 2 text

2 ⾃⼰紹介 ★ Who am I ? 所属・⽒名 株式会社サーバーワークス / アプリケーションサービス部 / ディベロップメントサービス1課 / 課⻑ 森 ⼤樹 ([email protected]) キャリア 約20年、SIerでプログラマ/プロジェクトマネージャの実務経験後、 2017年1⽉にサーバーワークスへ⼊社 Java / C# / Pythonを中⼼に様々なプログラム⾔語で開発 CICD環境の構築、運⽤などを⾏い、現在に⾄る 資格 PMP(Project Management Professional) 資格 CSM(Certified ScrumMaster) 資格 趣味 スノーボード/お酒 好きなAWSサービス AWS Lambda/Amazon Connect

Slide 3

Slide 3 text

⽬次 1. はじめに 2. AWS Config 3. AWS Config Rule Development Kit (RDK) 4. まとめ

Slide 4

Slide 4 text

はじめに

Slide 5

Slide 5 text

5 はじめに クラウドのセキュリティは最優先事項 AWSでは、責任共有モデルをベースに守るべきポイントがある

Slide 6

Slide 6 text

6 はじめに クラウドのセキュリティは最優先事項 AWSでは、責任共有モデルをベースに守るべきポイントがある

Slide 7

Slide 7 text

7 はじめに クラウドのセキュリティは最優先事項 AWSでは、責任共有モデルをベースに守るべきポイントがある 予防的統制 問題が起きないように事前にチェックするイメージ 発⾒的統制 問題が起こっても気付ける仕組みを作るイメージ

Slide 8

Slide 8 text

8 はじめに クラウドのセキュリティは最優先事項 AWSでは、責任共有モデルをベースに守るべきポイントがある 予防的統制 問題が起きないように事前にチェックするイメージ 発⾒的統制 問題が起こっても気付ける仕組みを作るイメージ

Slide 9

Slide 9 text

AWS Config

Slide 10

Slide 10 text

10 AWS Config AWS Config AWSアカウントにあるAWSリソースに関する設定の詳細ビューを提供 AWSリソースの設定履歴 AWSマネジメントコンソールやAPI、CLIを使⽤して設定された情報が履歴として残る ソフトウェアの設定履歴 Amazon EC2やオンプレで稼働しているサーバで実⾏されているソフトウェアの設定変更 が履歴として記録できる リソース間の関係の追跡 アカウント内のAWSリソース関係を検出、マッピング、追跡します

Slide 11

Slide 11 text

11 AWS Config AWS Config ルール AWS Configを使⽤して収集したAWSリソースの設定項⽬に対して、評価を⾏うもの AWS Config マネージドルール AWSによって管理されている事前定義されたルール AWS Config カスタムルール ⾃分たちでルールを作ることができる Guard もしくは AWS Lambdaを使⽤可能 結果としては 準拠 / ⾮準拠 / 対象外 を返す

Slide 12

Slide 12 text

12 AWS Config AWS Config ルール / カスタムルールで検知した例

Slide 13

Slide 13 text

13 AWS Config これらの設定をAWSマネジメントコンソールで実施すると問題がある可能性あり

Slide 14

Slide 14 text

14 AWS Config これらの設定をAWSマネジメントコンソールで実施すると問題がある可能性あり 設定は冪等性を担保したい

Slide 15

Slide 15 text

15 AWS Config これらの設定をAWSマネジメントコンソールで実施すると問題がある可能性あり 設定は冪等性を担保したい そんなあなたに︕

Slide 16

Slide 16 text

16 AWS Config これらの設定をAWSマネジメントコンソールで実施すると問題がある可能性あり 設定は冪等性を担保したい そんなあなたに︕ AWS Config RDK Rule Development Kit

Slide 17

Slide 17 text

17 AWS Config これらの設定をAWSマネジメントコンソールで実施すると問題がある可能性あり 設定は冪等性を担保したい そんなあなたに︕ AWS Config カスタム Lambdaルールを AWS Config RDKで︕ AWS Config RDK Rule Development Kit

Slide 18

Slide 18 text

AWS Config Rule Development Kit (RDK)

Slide 19

Slide 19 text

19 AWS Config Rule Development Kit (RDK) AWS Config カスタム Lambda ルールの作成を⽀援する開発キット コマンドラインからルールに使⽤するLambda関数の雛形の作成、テスト実⾏、 デプロイが可能 AWS Serverless Application Model (SAM)のようなイメージ CI/CDパイプラインに組み込むことも可能︕ AWSマネジメントコンソールを利⽤した⼿動で作成しないので冪等性を担保

Slide 20

Slide 20 text

20 AWS Config Rule Development Kit (RDK) 前提条件 Python 3.7+ AWS Config / Amazon S3 / AWS IAM / AWS Lambdaなどの権限が必要 最低限必要な権限は GitHub 参照 RDK内部ではboto3を利⽤しているため、基本的にboto3利⽤時の設定と同じ インストール インストールされたか確認 $ pip install rdk $ rdk usage: rdk [-h] [-p PROFILE] [-k ACCESS_KEY] [-s SECRET_ACCESS_KEY] [-r REGION] ... rdk: error: the following arguments are required: ,

Slide 21

Slide 21 text

21 AWS Config Rule Development Kit (RDK) セットアップ AWS Config の設定が検証され、必要なS3バケットまたはIAM Roleが作成される 今回は、Cloud9を利⽤して実⾏

Slide 22

Slide 22 text

22 AWS Config Rule Development Kit (RDK) ルールの作成 ルールを作成するディレクトリで rdk create コマンドを実⾏するとLambdaのスケルトンを 含むいくつかのファイルが作成される 例では Amazon EC2 インスタンスの推奨インスタンスタイプを t2.micro に設定 カスタム Lambda ルールのコードとそのテストコードとパラメータ情報ファイルを出⼒

Slide 23

Slide 23 text

23 AWS Config Rule Development Kit (RDK) サンプルコードを実装 ec2_desired_instance_type.pyを修正 評価対象が AWS::EC2::Instanceでない場合、 NOT_APPLICABLE (対象外) インスタンスタイプが t2.micro の場合、 COMPLIANT (準拠) インスタンスタイプが t2.micro 以外の場合、 NON_COMPLIANT (⾮準拠)

Slide 24

Slide 24 text

24 AWS Config Rule Development Kit (RDK) テストコードを実装 test_expected_compliantは準拠のテスト test_expected_non_compliantは⾮準拠のテスト サンプルコードはブログ参照

Slide 25

Slide 25 text

25 AWS Config Rule Development Kit (RDK) テストの実⾏ 3つのテストが想定通りの結果となっている

Slide 26

Slide 26 text

26 AWS Config Rule Development Kit (RDK) デプロイの実⾏

Slide 27

Slide 27 text

27 AWS Config Rule Development Kit (RDK) デプロイ確認 CFnで確認

Slide 28

Slide 28 text

28 AWS Config Rule Development Kit (RDK) デプロイ確認 Configで確認

Slide 29

Slide 29 text

29 AWS Config Rule Development Kit (RDK) デプロイ確認 Configで確認

Slide 30

Slide 30 text

30 AWS Config Rule Development Kit (RDK) RDKを使うメリット・デメリット メリット 検査したいロジックだけを 考えればOK RDKがよしなに吸収してくれているので、Lambdaの 構成やロジックをイチから考えなくてもOK 検査したいところだけをじっくり考えて テストが簡単 最悪AWSアカウントがなくてもテストが実⾏可能 テストは準拠/⾮準拠だけを考えればOK デメリット Lambdaのランタイムに 制限あり 今回はPython3.7を利⽤しましたが、Python以外に はJava, C#のみ 詳細は こちら を参照

Slide 31

Slide 31 text

まとめ

Slide 32

Slide 32 text

32 まとめ AWSリソースの発⾒的統制という観点でAWS Configを利⽤ AWSマネジメントコンソールを使うと間違える可能性がある AWS Config Rule Development Kit (RDK) を使ってみよう ロジックやテストも局所的に作るのみでOK ぜひ、ご利⽤を︕

Slide 33

Slide 33 text

33 まとめ AWS Config

Slide 34

Slide 34 text

34 まとめ AWS Config RDKを使ってみる RDKを 思い出す

Slide 35

Slide 35 text

35 まとめ AWS Config RDKを使ってみる フィードバックする RDKを 思い出す 効果を確認する

Slide 36

Slide 36 text

36 まとめ AWS Config RDKを使ってみる フィードバックする 効果を確認する 次の⼈が使う

Slide 37

Slide 37 text

37 まとめ AWS Config RDKを使ってみる フィードバックする 次の⼈が使う 効果を確認する RDKを 思い出す

Slide 38

Slide 38 text

Appendix

Slide 39

Slide 39 text

39 Appendix AWS Control Tower Workshop / Security & Compliance / AWS Config With RDK RDK Documentation aws-config-rdk(GitHub) サーバーワークス エンジニアブログ AWS Config Rule Development Kit(RDK)使ってみた ~1. 概要編~ AWS Config Rule Development Kit(RDK)使ってみた ~2. 実践編~ AWS Config Rule Development Kit(RDK)使ってみた ~3. デプロイツー ル⽐較編~ AWS Config カスタムポリシールール(Guard) ~1. 基本編~ AWS Config カスタムポリシールール(Guard) ~2. 応⽤編~

Slide 40

Slide 40 text

No content