Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
情シスにはStepFunctionsが強力な味方になるのではないか説 / StepFuncti...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Naomi Yamasaki
April 15, 2024
Technology
62
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
情シスにはStepFunctionsが強力な味方になるのではないか説 / StepFunctions could be a powerful ally for system admins
2024/4/15 JAWS-UG情シス支部#30でお話しした内容です。
Naomi Yamasaki
April 15, 2024
More Decks by Naomi Yamasaki
See All by Naomi Yamasaki
こんなアーキテクチャ図は嫌だ BEYOND THE TIME: 半年後の自分へ贈る15のメッセージ / 15 of Anti-pattern in AWS Architecture Diagrams
naospon
3
310
EOL?パッチ当て? そんなの知るか!(上司)〜株式会社ジンベエ水産 EOL狂騒曲〜 / how can we operate eol management well
naospon
0
140
ssmonline #51 ヤマサキ春のサメ祭り 2026 / ssmjp Yamasaki Spring JAWS Festival 2026
naospon
1
140
こんなアーキテクチャ図はいやだ / Anti-pattern in AWS Architecture Diagrams
naospon
1
680
20260307_JAWS_DAYS_2026_CDP道場 / jaws days 2026 cdp dojo
naospon
0
35
アーキテクチャ専門支部 presents 帰ってきた!CDP道場 〜サメシャイン水族館 事業停止の危機を救え!〜 / CDP Dojo - Save the SAMESHINE Aquarium from Shutting Down! presented by JAWS-UG Architecture
naospon
0
160
JAWS DAYS 2026 CDP道場 事前説明会 / JAWS DAYS 2026 CDP Dojo briefing document
naospon
0
280
AI駆動開発をどのように組織に取り込んで実践していくか / How can we drive AI driven development in my company
naospon
2
360
IAM Identity Centerを利用したAWSアカウントへの ログイン統制戦略 / Login Control Strategy for AWS Accounts Using IAM Identity Center
naospon
1
160
Other Decks in Technology
See All in Technology
Gitは怖い?共有ワークスペースから始めるSnowflakeチーム開発
coco_se
0
180
20260912_スクフェス三河
kgnkhkr
0
300
Claude Code本って、 読む必要あるの?
oikon48
2
420
2026-09-11 【Snowflake World Tour Tokyo 2026】Snowflakeを起点に、AI Agentが自律稼働し続ける未来へ / Driving AI Agents with Snowflake
civitaspo
0
350
プロダクト思考 × 基盤思考を AIで実現する Compound Engineering
tkc66buzz
1
330
AI 駆動 Terraform 開発/SRE_BizReach_MIXI_2
visional_engineering_and_design
4
2.1k
すぐできる衛星通信対応 あとは山奥に行くだけ
tatetate55
0
110
Screen Lens - 今見てる画面を翻訳する
komagata
0
250
『止めない』を設計する — 制約の中で、事業の根幹を支える判断
hiroyaterui
0
270
DEFCON_CHV_CTF_Write-up.pdf
bata_24
0
140
ASTを使って影響範囲を特定する
nealle
0
170
クロスボーダーM&AのValue Upを支えるプロダクト開発。日米チームのハブになったプロダクトエンジニアの実践 / Product Engineering Conference 2026
genda
0
120
Featured
See All Featured
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
520
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Ruling the World: When Life Gets Gamed
codingconduct
0
330
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Color Theory Basics | Prateek | Gurzu
gurzu
0
460
The Curse of the Amulet
leimatthew05
2
14k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
570
For a Future-Friendly Web
brad_frost
183
10k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
690
Heart Work Chapter 1 - Part 1
lfama
PRO
9
36k
Git: the NoSQL Database
bkeepers
PRO
432
67k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
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