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
情シスにはStepFunctionsが強力な味方になるのではないか説 / StepFuncti...
Search
Naomi Yamasaki
April 15, 2024
Technology
0
37
情シスにはStepFunctionsが強力な味方になるのではないか説 / StepFunctions could be a powerful ally for system admins
2024/4/15 JAWS-UG情シス支部#30でお話しした内容です。
Naomi Yamasaki
April 15, 2024
Tweet
Share
More Decks by Naomi Yamasaki
See All by Naomi Yamasaki
我々は雰囲気で仕事をしている / How can we do vibe coding as well
naospon
2
240
ssmonline #48 ヤマサキ初夏のサメ祭り 2025 サメの話 / ssmjp Yamasaki Summer JAWS Festival
naospon
0
90
JAWS-UG 情シス支部 第31回 クラウド女子会×札幌支部コラボ会 チョークトーク CloudWatchについて / JAWS-UG System Admins collaboration with Sapporo, Cloud Girls Chalk Talk about CloudWatch
naospon
1
90
JAWS-UG情シス支部 情シスにこそStepFunctionsが強力な武器になる〜ワイはQuickSightのユーザー削除を自動化したかったんや〜 / How to automate deprovisioning QuickSight users with StepFunctions
naospon
0
79
JAWS DAYS 2025 アーキテクチャ道場 クロージング / JAWS DAYS 2025 arhchitecture dojo closing
naospon
0
85
JAWS DAYS 2025 アーキテクチャ道場 当日説明 / JAWS DAYS 2025 architecture dojo opening description
naospon
0
92
JAWS DAYS 2025 アーキテクチャ道場 事前説明会 / JAWS DAYS 2025 briefing document
naospon
0
3.1k
Share my, our lessons from the road to re:Invent
naospon
0
330
私のre:Invent2024 re:Cap / my re:Invent2024 recap
naospon
1
110
Other Decks in Technology
See All in Technology
Snowflakeの生成AI機能を活用したデータ分析アプリの作成 〜Cortex AnalystとCortex Searchの活用とStreamlitアプリでの利用〜
nayuts
0
150
スプリントレトロスペクティブはチーム観察の宝庫? 〜チームの衝突レベルに合わせたアプローチ仮説!〜
electricsatie
1
150
Jaws-ug名古屋_LT資料_20250829
azoo2024
3
210
大「個人開発サービス」時代に僕たちはどう生きるか
sotarok
9
3.9k
衝突して強くなる! BLUE GIANTと アジャイルチームの共通点とは ― いきいきと活気に満ちたグルーヴあるチームを作るコツ ― / BLUE GIANT and Agile Teams
naitosatoshi
0
290
Oracle Cloud Infrastructure:2025年8月度サービス・アップデート
oracle4engineer
PRO
0
170
AI時代にPdMとPMMはどう連携すべきか / PdM–PMM-collaboration-in-AI-era
rakus_dev
0
250
Language Update: Java
skrb
2
200
ソフトウェア エンジニアとしての 姿勢と心構え
recruitengineers
PRO
26
12k
DuckDB-Wasmを使って ブラウザ上でRDBMSを動かす
hacusk
1
140
「魔法少女まどか☆マギカ Magia Exedra」のグローバル展開を支える、開発チームと翻訳チームの「意識しない協創」を実現するローカライズシステム
gree_tech
PRO
0
440
Kiroと学ぶコンテキストエンジニアリング
oikon48
5
6.3k
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
Producing Creativity
orderedlist
PRO
347
40k
Bash Introduction
62gerente
614
210k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
For a Future-Friendly Web
brad_frost
179
9.9k
It's Worth the Effort
3n
187
28k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
We Have a Design System, Now What?
morganepeng
53
7.8k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6k
Become a Pro
speakerdeck
PRO
29
5.5k
Transcript
情シスにはStepFunctionsが 強力な味方になるのではないか説 JAWS-UG情シス支部 #30 2024/04/15 生活協同組合コープさっぽろ 山﨑 奈緒美
AWS SAMURAI 2015 JAWS-UGアーキテクチャ専門支部 JAWS-UG情シス支部 生活協同組合コープさっぽろ デジタル推進本部 システム企画部 インフラチーム 山﨑
奈緒美 ご挨拶と自己紹介 大阪出身。 就職で上京し、ソフトハウスでインフラエンジニア 地図情報システム開発会社でひとり情シス 旅行会社の情シス部門でクラウド担当 2020年9月に東京から札幌へ移住し10月よりコープさっぽろへJOIN。 AWSのことならなんでも担当。 @nao_spon I ♡ Route53 IAM Organizations 夏はロードバイク、冬はスノボしてます。仲間募集中!
生活協同組合コープさっぽろについて 設立年月日 1965年7月18日 組合員数 197万人 247万世帯(組合員数÷北海道内世帯数 80%) 事業エリア 北海道179市町村(35市 129町
15村) 出資金額 873億円 総事業高 3,140億円 職員数 14,743名(契約職員・パートアルバイト・関連会社含む) 店舗数 108店舗 移動販売車 94台(133市町村) 宅配物流センター 41センター、10デポ、車両1,300台 配食工場 6工場(札幌、函館、苫小牧、旭川、釧路、帯広) 生産工場 7工場 ※2023年3月20日現在
北海道で生きることを誇りと喜びにする 3つのつなぐ 福祉活動 文化教室 組合員活動 葬祭事業 旅行事業 物流事業 店舗事業 移動販売
宅配事業 配食・給食 食育 食品製造 共済事業 エネルギー 子育て支援 環境活動 リサイクル フードバンク 育英奨学金 と 人 人 をつなぐ と 人 食 をつなぐ と 人 未来 をつなぐ
AWS Step Functions 触ったことある人?
Step Functionsに対するイメージ • アプリ開発の人が触るサービス • WEBシステム/サイトの裏側で使うサービス • Lambdaをつなげていくサービス ◦ Lambdaを書かないといけない
• なんか難しそう • (情シス / インフラ)な自分には関係なさそうなサービス • 開いてみたけどワケわからなくてそっ閉じした
Step Functionsに対するイメージ
Step Functionsに対するイメージ
やっぱワイには 関係ないやつやん
Lambdaを書かなくても AWS APIを直接呼び出せる
いろいろなAPIを直接呼び出せる
IAM Identity Centerと QuickSightユーザーの プロビジョニングを Step Functionsで実装してみた
課題の背景 • 2021年からQuickSightを使っている • IAM Identity Centerを使用してSSOログイン • IdpはGoogle WorkspaceでカスタムSAMLアプリを使用
• 8部門でQuickSightを使用しており横展開を推進中 • ユーザー数は約2200人→横展開進めばもっと増える • QuickSightでは自部門の分析やダッシュボードしかみれないよう にしたい
当時の課題点(2023年2月ごろ) • IAM Identity Centerを経由してQuickSightへのSSOログインはで きるがQuickSightユーザーの自動作成ができない • QuickSightユーザーの自動作成ができないのでQuickSightグルー プへの関連付けもできない
Idp/IAM Identity Center/QuickSight
QuickSigitのユーザープロビジョニング 2つの方式を要件によって使い分ける • 管理者による事前プロビジョニング • ユーザーが初回ログインを行う前にグループにあらかじめ追加するといった ユーザーの権限周りの個別設定を事前に行う必要がある • QuickSightの利用を行うにあたって管理者の承認が必要 •
ユーザー自身による自己プロビジョニング • 組織内の多数のユーザーに対して自由にQuickSightの利用を開始させたい • 各種権限付与は自己プロビジョニング後に非同期処理で権限付与を行うか、 申請ベースで管理者が後から行う形でも運用上問題ない 引用元: Amazon QuickSight における シングルサインオンの設計と実装 AWS Black Belt Online Seminar https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2023_AmazonQuickSight-SSO_0228_v1.pdf
どっちもやりたくない笑
QuickSightユーザーの 管理者による事前 プロビジョニングを Step Functionsで実装してみた
Step Functionsでの実装 • EventBridgeからStep Functionsを起動する • QuickSight側で追加すべきグループも取得したいので aws.sso-directoryのAddMemberToGroupイベントをトリガー指定 • EventBridgeのターゲットでStep
Functionsを指定する • ターゲット指定はStep Functionsができてから
Step Functionsでの実装
Step Functionsでの実装 • IdpからSCIMでIAM Identity Centerにユーザー追加または グループ追加されたらスタート • ユーザー情報とグループ情報を取得する •
同時に複数のユーザーが追加されることを考慮して並列実行
Step Functionsでの実装 • QuickSightユーザーIDをLambdaで生成 • どうしてもLambdaにならざるを得なかった • <IAM Role Name>/<メールアドレス>
• ユーザー情報取得結果を次のStepへ渡す時に 文字列連結する方法がわからなかった
Step Functionsでの実装 • Lambdaの結果が200かどうか判定 • エラーだったらStep Functionsの結果をFailで終わらせる • 200だったらQuickSightDescribeUserをしてユーザー情報を取得
Step Functionsでの実装 • QuickSightユーザーが存在しているかを判定 • 存在していない場合 • IAM Identity Centerから取得したグループ情報とLambdaで生成したユーザーIDを使って
QuickSightユーザー作成しグループ追加ステップへ遷移 • 存在している場合はグループ追加ステップへ遷移
Step Functionsでの実装 • QuickSightグループへの追加 • IAM Identity Centerから取得したグループ情報により それぞれのQuickSightグループへの追加を行う
Step Functionsでの実装 • ハマったこと • 値を次Stepへ渡す際に文字列を連結する方法がわからなかった • 初めての実行時、当時いた約1600人分のSSO.DescribeUserと SSO.DescribeGroupが走ってAPIがコケた •
Stepでエラーハンドリングができる • エラーハンドリングではエクスポネンシャルバックオフに対応している Identitystore.ThrottlingExceptionが発生したらエラーハンドリング
Step Functionsでの実装 • ハマったこと • QuickSightDescribeUserもコケる • SSO.DescribeXXと同じくエクスポネンシャルバックオフ • QuickSightユーザーが存在していない場合(=新規作成)時もコケる
• Exceptionが起きるとStep Functions自体がFailとなってしまう • QuickSight.ResourceNotFoundException のCatcher処理で ユーザー存在判定Stepへ流すようにした
Step Functionsでの実装 • つらみな点 • 利用部門が増えると・・・ • グループ追加させるStepを部門×Author、Reader分増やす必要がある • Lambdaの修正も必要
Step Functions稼働後にアップデートきた
Step Functions稼働後にアップデートきた 担当SAさん 担当SAさん
情シス的Step Functions • 使えるAPIはたくさんあるので何かしら使えるものがある • 手作業でしていてしんどいことは全部Step Functionsに任せよう
Cloud in the Camp 2024 札幌 Horippa 7/13-14 https://connpass.com/event/315715/
None
ありがとうございました https://www.wantedly.com/companies/company_7505384