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
390
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
89
サーバーレスアーキテクチャを使って、小さく作って大きくする取り組み
daikimori
0
3.5k
JAWS-UG Osaka ZERO-ETL/jawsug osaka zero-etl
daikimori
0
52
JAWS DAYS 2022/Osaka/プログラムは作ったら終わり︖︖ その後が⼤事なんだよ︕︕/20221008_X-Ray_LambdaPowertools
daikimori
0
120
データを受け取って、データを加工して、データを可視化する直前までのお話 / AWS DATA ETL
daikimori
0
160
[JAWS DAYS 2021] Amazon Connect and Serverless
daikimori
1
200
JAWS-UG Kansai Meetup(2020/11) Amazon Connectの今
daikimori
0
66
Playing in re:Invent
daikimori
0
110
Introduction of Amazon Connect
daikimori
0
41
Other Decks in Technology
See All in Technology
Agentic AI時代のプロダクトマネジメントことはじめ〜仮説検証編〜
masakazu178
3
370
信頼性を支えるテレメトリーパイプラインの構築 / Building Telemetry Pipeline with OpenTelemetry
ymotongpoo
9
5k
プロダクト開発、インフラ、コーポレート、そしてAIとの共通言語としての Terraform / Terraform as a Common Language for Product Development, Infrastructure, Corporate Engineering, and AI
yuyatakeyama
6
1.6k
ソフトウェアアーキテクトのための意思決定術: Software Architecture and Decision-Making
snoozer05
PRO
17
4k
日本語プログラミングとSpring Bootアプリケーション開発 #kanjava
yusuke
2
340
Amazon Aurora バージョンアップについて、改めて理解する ~バージョンアップ手法と文字コードへの影響~
smt7174
1
240
プロダクト価値を引き上げる、「課題の再定義」という習慣
moeka__c
0
200
【Λ(らむだ)】アップデート機能振り返りΛ編 / PADjp20250127
lambda
0
120
Re:Define 可用性を支える モニタリング、パフォーマンス最適化、そしてセキュリティ
pyama86
9
5.6k
CNAPPから考えるAWSガバナンスの実践と最適化
nrinetcom
PRO
1
330
パブリッククラウドのプロダクトマネジメントとアーキテクト
tagomoris
4
760
CNAPPから考えるAWSガバナンスの実践と最適化
yuobayashi
5
680
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
520
Building a Scalable Design System with Sketch
lauravandoore
460
33k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
Speed Design
sergeychernyshev
25
760
Java REST API Framework Comparison - PWX 2021
mraible
28
8.4k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
4 Signs Your Business is Dying
shpigford
182
22k
Bash Introduction
62gerente
610
210k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
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