Slide 1

Slide 1 text

Elastic Cloudの 特権アカウント共用から脱却! 株式会社ZOZO
 EC基盤開発本部 SRE部 検索基盤SREブロック
 花房 諒
 Copyright © ZOZO, Inc. 1

Slide 2

Slide 2 text

© ZOZO, Inc. 株式会社ZOZO EC基盤開発本部 SRE部 検索基盤SREブロック 花房 諒 普段はZOZOTOWNの検索関連マイクロサービスの QCD改善やインフラ運用を担当しています。 最近は検索領域のSREと並行して、新規取り組みのアプリケーション 開発にも携わっています。(Go/Python開発者) Elasticsearch & Kubernetesを触れる人として2023年3月に ZOZOに入社しました。GitHubアカウント:R-HNF 2

Slide 3

Slide 3 text

© ZOZO, Inc. 3 本発表について 以下について紹介します。 ● RBAC機能の利用によりElastic Cloudの特権アカウントの共用から脱却した取り組み ● 独自のRoleによるチームごとの適切な権限管理 複数チームに利用されるElastic Cloud/Elasticsearchを 管理している方の参考になると思います!

Slide 4

Slide 4 text

© ZOZO, Inc. 4 発表内容の詳細はブログ記事で 同じ内容のテックブログを同じタイトルで 投稿しております。 また、本資料も公開いたします。 テックブログ

Slide 5

Slide 5 text

© ZOZO, Inc. 5 アジェンダ ● ZOZOTOWNにおけるElasticsearchの活用方法 ● 課題 ○ Elastic Cloudの特権アカウント共用 ● 解決策 ○ Elastic CloudのRBAC機能 ○ Elasticsearch内の権限 ● まとめ

Slide 6

Slide 6 text

© ZOZO, Inc. 6 アジェンダ ● ZOZOTOWNにおけるElasticsearchの活用方法 ● 課題 ○ Elastic Cloudの特権アカウント共用 ● 解決策 ○ Elastic CloudのRBAC機能 ○ Elasticsearch内の権限 ● まとめ

Slide 7

Slide 7 text

© ZOZO, Inc. https://zozo.jp/ ● ファッションEC ● 1,600以上のショップ、9,100以上のブランドの取り扱い ● 常時102万点以上の商品アイテム数と毎日平均2,600点以上の新着 商品を掲載(2024年12月末時点) ● ブランド古着のファッションゾーン「ZOZOUSED」や コスメ専門モール「ZOZOCOSME」、シューズ専門ゾーン 「ZOZOSHOES」、ラグジュアリー&デザイナーズゾーン 「ZOZOVILLA」を展開 ● 即日配送サービス ● ギフトラッピングサービス ● ツケ払い など 7

Slide 8

Slide 8 text

© ZOZO, Inc. 8 ZOZOTOWNにおけるElasticsearchの活用方法 検索キーワードサジェスト 検索おすすめ順 商品検索

Slide 9

Slide 9 text

© ZOZO, Inc. 9 ZOZOTOWNにおけるElasticsearchの活用方法 検索キーワードサジェスト 検索おすすめ順 商品検索 検索機能の全般でElasticsearchを活用

Slide 10

Slide 10 text

© ZOZO, Inc. 10 ZOZOTOWNにおけるElasticsearchの活用方法 運用管理の負担を軽減するためマネージドサービスであるElastic Cloudを利用 引用元:ElasticON発表時の資料『ZOZOTOWNの商品検索における Elasticsearch活用事例』 - SpeakerDeck

Slide 11

Slide 11 text

© ZOZO, Inc. 11 アジェンダ ● ZOZOTOWNにおけるElasticsearchの活用方法 ● 課題 ○ Elastic Cloudの特権アカウント共用 ● 解決策 ○ Elastic CloudのRBAC機能 ○ Elasticsearch内の権限 ● まとめ

Slide 12

Slide 12 text

© ZOZO, Inc. 12 Elastic Cloudの特権アカウント共用 改善前までの利用方法 ● 複数のチームで 単一の特権アカウントを共用

Slide 13

Slide 13 text

© ZOZO, Inc. 共用のリスク ● ログイン情報が漏洩して悪用される ○ 複数人で共用しているため漏洩する可能性が高まっている状態 ○ 例)本番環境の商品情報の改変により、ZOZOTOWNの検索結果を不正に操作される ● インフラ管理者以外の誤操作により重大な事故を引き起こす ○ クラスタの管理を担うDeploymentに対して全ての操作が可能なため ○ 例)本番環境のクラスタ/インデックスを削除してしまい、ZOZOTOWNが利用不可になる 13 Elastic Cloudの特権アカウント共用 検索機能だけでなくZOZOTOWN全体にも影響する可能性

Slide 14

Slide 14 text

© ZOZO, Inc. 14 Elastic Cloudの特権アカウント共用 なぜ共用していたか ● Elastic Cloudの利用を開始した当初、Organizationに登録できるアカウントは1つまでという 制限があったため ● 2021年のアップデートにより、Organizationへのアカウント追加が可能になった ○ しかし、追加した全てのアカウントに管理者権限が付与されてしまうため、 各チームに合ったRole(権限セット)を柔軟に設定できなかった 細かい権限管理ができなかったため共用が続いた

Slide 15

Slide 15 text

© ZOZO, Inc. 解決策 1. 2023年4月に追加されたElastic CloudのRBAC機能の利用 2. Elasticsearch内では独自のRoleを定義して利用者のアカウントに付与 15 Elastic Cloudの特権アカウント共用 2つの取り組みを組み合わせて解決

Slide 16

Slide 16 text

© ZOZO, Inc. 16 アジェンダ ● ZOZOTOWNにおけるElasticsearchの活用方法 ● 課題 ○ Elastic Cloudの特権アカウント共用 ● 解決策 ○ Elastic CloudのRBAC機能 ○ Elasticsearch内の権限 ● まとめ

Slide 17

Slide 17 text

© ZOZO, Inc. 17 Elastic CloudのRBAC機能 Organizationに追加したアカウントへRoleを付与可能に ● Roleの種類 Organization Owner すべての権限を持つ Billing Owner 支払いに関する管理が可能 Admin Deploymentsの作成やプロパティの管理、 セキュリティ権限の管理が可能 Viewer Deploymentsの閲覧が可能 None Deploymentsの閲覧やアクセスは禁止 Deployment単位での 指定も可能

Slide 18

Slide 18 text

© ZOZO, Inc. 18 Elastic CloudのRBAC機能 ZOZOでの運用方法 ● 利用者のアカウントをOrganizationに追加 ● 利用者には下記の通りRoleを付与(dev/stg/prdの全環境) インフラ管理者(SRE) Admin Deploymentsの作成やプロパティの管理、 セキュリティ権限の管理が可能 開発者 Viewer Deploymentsの閲覧が可能 特権アカウント共用から個人アカウント利用へ

Slide 19

Slide 19 text

© ZOZO, Inc. 19 特権アカウント共用から個人アカウント利用へ

Slide 20

Slide 20 text

© ZOZO, Inc. 20 アジェンダ ● ZOZOTOWNにおけるElasticsearchの活用方法 ● 課題 ○ Elastic Cloudの特権アカウント共用 ● 解決策 ○ Elastic CloudのRBAC機能 ○ Elasticsearch内の権限 ● まとめ

Slide 21

Slide 21 text

© ZOZO, Inc. 21 Elasticsearch内の権限 Elasticsearch/KibanaへはElastic Cloudアカウントでログイン可能 ● 元のRoleと同等のElasticsearch内のRoleが付与される(Elastic Cloud標準の機能) Elastic CloudのRole ElasticsaerchのRole Organization Owner superuser Billing Owner none Admin editor Viewer viewer None none

Slide 22

Slide 22 text

© ZOZO, Inc. 22 Elasticsearch内の権限 ZOZOでの運用方法 ● Elasticserch/KibanaへのログインもElastic Cloudアカウントを利用(dev/stg/prdの全環境) 利用者の役割 Elastic CloudのRole ElasticsearchのRole インフラ管理者(SRE) Admin superuser 開発者 Viewer viewer

Slide 23

Slide 23 text

© ZOZO, Inc. 23 Elasticsearch内の権限 ZOZOでの運用方法 ● Elasticserch/KibanaへのログインもElastic Cloudアカウントを利用(dev/stg/prdの全環境) 利用者の役割 Elastic CloudのRole ElasticsearchのRole インフラ管理者(SRE) Admin superuser 開発者 Viewer viewer 課題:dev/stg環境において開発者が    Index自体やIndex内のドキュメントなどを変更できない

Slide 24

Slide 24 text

© ZOZO, Inc. ZOZOでの運用方法 ● Elasticserch/KibanaへのログインもElastic Cloudアカウントを利用(dev/stg/prdの全環境) 独自のRoleの付与により インフラ面は閲覧に絞ったまま、開発のための権限を増やす 24 Elasticsearch内の権限 利用者の役割 Elastic CloudのRole ElasticsearchのRole インフラ管理者(SRE) Admin superuser 開発者 Viewer viewer + 独自のRole

Slide 25

Slide 25 text

© ZOZO, Inc. 25 Elasticsearch内の権限 Elastic Cloudアカウントへの 独自のRoleの付与方法 Elastic Cloudアカウントの User IDを指定 付与する独自Roleを指定

Slide 26

Slide 26 text

© ZOZO, Inc. 26 Elasticsearch内の権限 独自のRole ● 全員に付与する共通のRole ○ 全員が最低限必要となる権限をまとめたRole(dev/stg/prd環境別) ○ 作成理由 ■ 各チームが最低限必要となる権限がまとまっていたため ■ チームごとのRoleを冗長にせず管理しやすくするため ● チームごとに付与するチームのRole ○ チームごとに特別に必要となる権限をまとめた(dev/stg/prd環境別) ○ 作成理由 ■ チームごとに権限が欲しいDeploymentやIndexが異なり、 共通のRoleにはまとめられない権限が存在したため

Slide 27

Slide 27 text

© ZOZO, Inc. 27 Elasticsearch内の権限 各チームが行いたい具体的な操作をヒアリングし、独自のRoleをSREで設計 例) 検索研究チームへの stgのヒアリング結果

Slide 28

Slide 28 text

© ZOZO, Inc. 28 最終的に

Slide 29

Slide 29 text

© ZOZO, Inc. 29 最終的に 特権アカウント共用から完全に脱却

Slide 30

Slide 30 text

© ZOZO, Inc. 30 アジェンダ ● ZOZOTOWNにおけるElasticsearchの活用方法 ● 課題 ○ Elastic Cloudの特権アカウント共用 ● 解決策 ○ Elastic CloudのRBAC機能 ○ Elasticsearch内の権限 ● まとめ

Slide 31

Slide 31 text

© ZOZO, Inc. 31 課題と解決方法 ● 課題 ○ アカウントの共有によるセキュリティ上のリスク ○ 誤操作により重大な事故を引き起こす可能性 ○ チームごとに適切な権限を付与できない ● 解決方法 ○ Elastic CloudのRBAC機能利用 ○ Elastic Cloudアカウントに対するElasticsearch内の独自のRoleを追加付与 ■ 利用者共通のRole ■ チームごとのRole

Slide 32

Slide 32 text

© ZOZO, Inc. 32 残課題 ● マイクロサービスからElasticsearchへはsuperuserでアクセス ○ 不要な権限も含む強い権限を渡している ○ 例)サフィックス指定でIndexを削除する際、   指定方法のミスで想定外のIndexまで削除してしまう ● アカウント管理のベストプラクティスであるdev/stg/prdのOrganization分離が できていない ○ 現状の仕様で分けようとした場合 ■ 支払いを一元化できない ■ 1つのメールアドレスを複数のOrganizationに登録できない 今後、解決に取り組んでいきたい

Slide 33

Slide 33 text

No content