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
ssmonline #48 ヤマサキ初夏のサメ祭り 2025 サメの話 / ssmjp Yamasaki Summer JAWS Festival
naospon
0
86
JAWS-UG 情シス支部 第31回 クラウド女子会×札幌支部コラボ会 チョークトーク CloudWatchについて / JAWS-UG System Admins collaboration with Sapporo, Cloud Girls Chalk Talk about CloudWatch
naospon
1
86
JAWS-UG情シス支部 情シスにこそStepFunctionsが強力な武器になる〜ワイはQuickSightのユーザー削除を自動化したかったんや〜 / How to automate deprovisioning QuickSight users with StepFunctions
naospon
0
69
JAWS DAYS 2025 アーキテクチャ道場 クロージング / JAWS DAYS 2025 arhchitecture dojo closing
naospon
0
82
JAWS DAYS 2025 アーキテクチャ道場 当日説明 / JAWS DAYS 2025 architecture dojo opening description
naospon
0
88
JAWS DAYS 2025 アーキテクチャ道場 事前説明会 / JAWS DAYS 2025 briefing document
naospon
0
3.1k
Share my, our lessons from the road to re:Invent
naospon
0
300
私のre:Invent2024 re:Cap / my re:Invent2024 recap
naospon
1
100
コープのクラウド移行 JAWS FESTA 2024振り返り / Cloud migration with Cost reduction TIPS at CO-OP and Look back at JAWS FESTA 2024 in HIROSHIMA
naospon
0
35
Other Decks in Technology
See All in Technology
Agent Development Kitで始める生成 AI エージェント実践開発
danishi
0
150
Amazon S3 Vectorsは大規模ベクトル検索を低コスト化するサーバーレスなベクトルデータベースだ #jawsugsaga / S3 Vectors As A Serverless Vector Database
quiver
1
380
Telemetry APIから学ぶGoogle Cloud ObservabilityとOpenTelemetryの現在 / getting-started-telemetry-api-with-google-cloud
k6s4i53rx
0
140
Claude Codeから我々が学ぶべきこと
oikon48
10
2.8k
Amazon GuardDuty での脅威検出:脅威検出の実例から学ぶ
kintotechdev
0
110
「Roblox」の開発環境とその効率化 ~DAU9700万人超の巨大プラットフォームの開発 事始め~
keitatanji
0
120
Serverless Meetup #21
yoshidashingo
1
120
Backlog AI アシスタントが切り開く未来
vvatanabe
1
130
大規模イベントに向けた ABEMA アーキテクチャの遍歴 ~ Platform Strategy 詳細解説 ~
nagapad
0
220
「AIと一緒にやる」が当たり前になるまでの奮闘記
kakehashi
PRO
3
140
生成AI導入の効果を最大化する データ活用戦略
ham0215
0
160
Rubyの国のPerlMonger
anatofuz
3
730
Featured
See All Featured
Scaling GitHub
holman
461
140k
What's in a price? How to price your products and services
michaelherold
246
12k
Writing Fast Ruby
sferik
628
62k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
760
The World Runs on Bad Software
bkeepers
PRO
70
11k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
Into the Great Unknown - MozCon
thekraken
40
2k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
440
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.6k
Making the Leap to Tech Lead
cromwellryan
134
9.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