Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWS RDK 〜AWS ConfigのカスタムルールをLambdaで書くときに使うツールキット〜
Search
daiki.mori
August 31, 2023
Technology
0
460
AWS RDK 〜AWS ConfigのカスタムルールをLambdaで書くときに使うツールキット〜
AWSで発見的統制を取るために利用されるAWS Config
そのカスタムルールをLambdaで書きたいときに有効なRDKのご紹介
daiki.mori
August 31, 2023
Tweet
Share
More Decks by daiki.mori
See All by daiki.mori
いい感じにグラフを表示、やっぱWebでやりたいね。それをAWSで実現!
daikimori
0
150
サーバーレスアーキテクチャを使って、小さく作って大きくする取り組み
daikimori
0
3.7k
JAWS-UG Osaka ZERO-ETL/jawsug osaka zero-etl
daikimori
0
66
JAWS DAYS 2022/Osaka/プログラムは作ったら終わり︖︖ その後が⼤事なんだよ︕︕/20221008_X-Ray_LambdaPowertools
daikimori
0
130
データを受け取って、データを加工して、データを可視化する直前までのお話 / AWS DATA ETL
daikimori
0
170
[JAWS DAYS 2021] Amazon Connect and Serverless
daikimori
1
230
JAWS-UG Kansai Meetup(2020/11) Amazon Connectの今
daikimori
0
79
Playing in re:Invent
daikimori
0
130
Introduction of Amazon Connect
daikimori
0
49
Other Decks in Technology
See All in Technology
shake-upを科学する
rsakata
7
1k
衛星運用をソフトウェアエンジニアに依頼したときにできあがるもの
sankichi92
1
1.1k
AWS Well-Architected から考えるオブザーバビリティの勘所 / Considering the Essentials of Observability from AWS Well-Architected
sms_tech
1
110
SREの次のキャリアの道しるべ 〜SREがマネジメントレイヤーに挑戦して、 気づいたこととTips〜
coconala_engineer
1
4.4k
ポストコロナ時代の SaaS におけるコスト削減の意義
izzii
1
470
組織内、組織間の資産保護に必要なアイデンティティ基盤と関連技術の最新動向
fujie
0
280
データ戦略部門 紹介資料
sansan33
PRO
1
3.3k
マルチプロダクト環境におけるSREの役割 / SRE NEXT 2025 lunch session
sugamasao
1
730
サービスを止めるな! DDoS攻撃へのスマートな備えと最前線の事例
coconala_engineer
1
180
今だから言えるセキュリティLT_Wordpress5.7.2未満を一斉アップデートせよ
cuebic9bic
2
170
ABEMAの本番環境負荷試験への挑戦
mk2taiga
5
1.3k
ClaudeCode_vs_GeminiCLI_Terraformで比較してみた
tkikuchi
1
1.3k
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
700
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.6k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.9k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
830
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.4k
Building an army of robots
kneath
306
45k
Adopting Sorbet at Scale
ufuk
77
9.5k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
282
13k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
47
9.6k
Transcript
AWS RDK 〜AWS ConfigのカスタムルールをLambdaで書 くときに使うツールキット〜 JAWS-UG⼤阪 「AWSのセキュリティサービス&ソリューション座談会」 株式会社サーバーワークス 森 ⼤樹
2023/08/31
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
⽬次 1. はじめに 2. AWS Config 3. AWS Config Rule
Development Kit (RDK) 4. まとめ
はじめに
5 はじめに クラウドのセキュリティは最優先事項 AWSでは、責任共有モデルをベースに守るべきポイントがある
6 はじめに クラウドのセキュリティは最優先事項 AWSでは、責任共有モデルをベースに守るべきポイントがある
7 はじめに クラウドのセキュリティは最優先事項 AWSでは、責任共有モデルをベースに守るべきポイントがある 予防的統制 問題が起きないように事前にチェックするイメージ 発⾒的統制 問題が起こっても気付ける仕組みを作るイメージ
8 はじめに クラウドのセキュリティは最優先事項 AWSでは、責任共有モデルをベースに守るべきポイントがある 予防的統制 問題が起きないように事前にチェックするイメージ 発⾒的統制 問題が起こっても気付ける仕組みを作るイメージ
AWS Config
10 AWS Config AWS Config AWSアカウントにあるAWSリソースに関する設定の詳細ビューを提供 AWSリソースの設定履歴 AWSマネジメントコンソールやAPI、CLIを使⽤して設定された情報が履歴として残る ソフトウェアの設定履歴 Amazon
EC2やオンプレで稼働しているサーバで実⾏されているソフトウェアの設定変更 が履歴として記録できる リソース間の関係の追跡 アカウント内のAWSリソース関係を検出、マッピング、追跡します
11 AWS Config AWS Config ルール AWS Configを使⽤して収集したAWSリソースの設定項⽬に対して、評価を⾏うもの AWS Config
マネージドルール AWSによって管理されている事前定義されたルール AWS Config カスタムルール ⾃分たちでルールを作ることができる Guard もしくは AWS Lambdaを使⽤可能 結果としては 準拠 / ⾮準拠 / 対象外 を返す
12 AWS Config AWS Config ルール / カスタムルールで検知した例
13 AWS Config これらの設定をAWSマネジメントコンソールで実施すると問題がある可能性あり
14 AWS Config これらの設定をAWSマネジメントコンソールで実施すると問題がある可能性あり 設定は冪等性を担保したい
15 AWS Config これらの設定をAWSマネジメントコンソールで実施すると問題がある可能性あり 設定は冪等性を担保したい そんなあなたに︕
16 AWS Config これらの設定をAWSマネジメントコンソールで実施すると問題がある可能性あり 設定は冪等性を担保したい そんなあなたに︕ AWS Config RDK Rule
Development Kit
17 AWS Config これらの設定をAWSマネジメントコンソールで実施すると問題がある可能性あり 設定は冪等性を担保したい そんなあなたに︕ AWS Config カスタム Lambdaルールを
AWS Config RDKで︕ AWS Config RDK Rule Development Kit
AWS Config Rule Development Kit (RDK)
19 AWS Config Rule Development Kit (RDK) AWS Config カスタム
Lambda ルールの作成を⽀援する開発キット コマンドラインからルールに使⽤するLambda関数の雛形の作成、テスト実⾏、 デプロイが可能 AWS Serverless Application Model (SAM)のようなイメージ CI/CDパイプラインに組み込むことも可能︕ AWSマネジメントコンソールを利⽤した⼿動で作成しないので冪等性を担保
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] <command> ... rdk: error: the following arguments are required: <command>, <command arguments>
21 AWS Config Rule Development Kit (RDK) セットアップ AWS Config
の設定が検証され、必要なS3バケットまたはIAM Roleが作成される 今回は、Cloud9を利⽤して実⾏
22 AWS Config Rule Development Kit (RDK) ルールの作成 ルールを作成するディレクトリで rdk
create コマンドを実⾏するとLambdaのスケルトンを 含むいくつかのファイルが作成される 例では Amazon EC2 インスタンスの推奨インスタンスタイプを t2.micro に設定 カスタム Lambda ルールのコードとそのテストコードとパラメータ情報ファイルを出⼒
23 AWS Config Rule Development Kit (RDK) サンプルコードを実装 ec2_desired_instance_type.pyを修正 評価対象が
AWS::EC2::Instanceでない場合、 NOT_APPLICABLE (対象外) インスタンスタイプが t2.micro の場合、 COMPLIANT (準拠) インスタンスタイプが t2.micro 以外の場合、 NON_COMPLIANT (⾮準拠)
24 AWS Config Rule Development Kit (RDK) テストコードを実装 test_expected_compliantは準拠のテスト test_expected_non_compliantは⾮準拠のテスト
サンプルコードはブログ参照
25 AWS Config Rule Development Kit (RDK) テストの実⾏ 3つのテストが想定通りの結果となっている
26 AWS Config Rule Development Kit (RDK) デプロイの実⾏
27 AWS Config Rule Development Kit (RDK) デプロイ確認 CFnで確認
28 AWS Config Rule Development Kit (RDK) デプロイ確認 Configで確認
29 AWS Config Rule Development Kit (RDK) デプロイ確認 Configで確認
30 AWS Config Rule Development Kit (RDK) RDKを使うメリット・デメリット メリット 検査したいロジックだけを
考えればOK RDKがよしなに吸収してくれているので、Lambdaの 構成やロジックをイチから考えなくてもOK 検査したいところだけをじっくり考えて テストが簡単 最悪AWSアカウントがなくてもテストが実⾏可能 テストは準拠/⾮準拠だけを考えればOK デメリット Lambdaのランタイムに 制限あり 今回はPython3.7を利⽤しましたが、Python以外に はJava, C#のみ 詳細は こちら を参照
まとめ
32 まとめ AWSリソースの発⾒的統制という観点でAWS Configを利⽤ AWSマネジメントコンソールを使うと間違える可能性がある AWS Config Rule Development Kit
(RDK) を使ってみよう ロジックやテストも局所的に作るのみでOK ぜひ、ご利⽤を︕
33 まとめ AWS Config
34 まとめ AWS Config RDKを使ってみる RDKを 思い出す
35 まとめ AWS Config RDKを使ってみる フィードバックする RDKを 思い出す 効果を確認する
36 まとめ AWS Config RDKを使ってみる フィードバックする 効果を確認する 次の⼈が使う
37 まとめ AWS Config RDKを使ってみる フィードバックする 次の⼈が使う 効果を確認する RDKを 思い出す
Appendix
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. 応⽤編~
None