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
24
情シスには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
JAWS DAYS 2025 アーキテクチャ道場 事前説明会 / JAWS DAYS 2025 briefing document
naospon
0
5
Share my, our lessons from the road to re:Invent
naospon
0
110
私のre:Invent2024 re:Cap / my re:Invent2024 recap
naospon
1
81
コープのクラウド移行 JAWS FESTA 2024振り返り / Cloud migration with Cost reduction TIPS at CO-OP and Look back at JAWS FESTA 2024 in HIROSHIMA
naospon
0
22
元旅行会社の情シス部員が教えるおすすめなre:Inventへの行き方 / What is the most efficient way to re:Invent
naospon
2
500
コープのクラウド移行 〜AWS初心者と移行経験者の奮闘記〜コープさっぽろ編 / How to migrate massive system migration and problem-solving methods
naospon
0
20
JAWS FESTA 2024 前夜祭 / JAWS FESTA 2024 in HIROSHIMA Pre-Party
naospon
0
20
大量リダイレクトも怖くない!CloudFront KeyValueStoreでサービスサイトリニューアルを楽々乗り越えた話 / How can I mass redirects were handled
naospon
0
23
サメのはなし / How Sharks are born
naospon
0
41
Other Decks in Technology
See All in Technology
RSNA2024振り返り
nanachi
0
620
データマネジメントのトレードオフに立ち向かう
ikkimiyazaki
6
1.2k
あれは良かった、あれは苦労したB2B2C型SaaSの新規開発におけるCloud Spanner
hirohito1108
2
770
データ資産をシームレスに伝達するためのイベント駆動型アーキテクチャ
kakehashi
PRO
2
600
Windows の新しい管理者保護モード
murachiakira
0
170
Oracle Cloud Infrastructure:2025年2月度サービス・アップデート
oracle4engineer
PRO
1
330
エンジニアの育成を支える爆速フィードバック文化
sansantech
PRO
3
1.1k
OSS構成管理ツールCMDBuildを使ったAWSリソース管理の自動化
satorufunai
0
350
ビジネスモデリング道場 目的と背景
masuda220
PRO
9
670
CDKのコードを書く環境を作りました with Amazon Q
nobuhitomorioka
1
110
Classmethod AI Talks(CATs) #17 司会進行スライド(2025.02.19) / classmethod-ai-talks-aka-cats_moderator-slides_vol17_2025-02-19
shinyaa31
0
160
エンジニアのためのドキュメント力基礎講座〜構造化思考から始めよう〜(2025/02/15jbug広島#15発表資料)
yasuoyasuo
18
7.1k
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
6
250
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
193
16k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
114
50k
KATA
mclloyd
29
14k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.1k
Testing 201, or: Great Expectations
jmmastey
42
7.2k
BBQ
matthewcrist
87
9.5k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.4k
How to Ace a Technical Interview
jacobian
276
23k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
Practical Orchestrator
shlominoach
186
10k
Typedesign – Prime Four
hannesfritz
40
2.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