Salesforceの権限設定を全面整理してみた

なぜやったのか

2017年にSalesforceを導入して以来、権限周りは一度も整理されぬまま継ぎ足し継ぎ足し秘伝のタレ状態になっており、システム管理者は「このプロファイルを割り当てることでどんな権限が付与されるのかわからない」、ユーザー側は「あの作業ができるようになりたいんだけどどの権限つけてもらえばいいの?」とカオス状態になっていました。

「一般ユーザのログイン方法をSSOに制限する」という計画もあったため(これもまたどこかで書きたい)、これを機に一気に権限内容を見直し、Salesforceを理路整然とした世界に近づけるんやと決めました。

弊社環境

導入当初はユーザは10名前後。
そこから4年の時を経て現在は100名(※TeamSpiritユーザ除く)を超えるユーザが利用しています。
主な利用部署はビジネスサイド(営業部、マーケティング部、カスタマーサクセス部)、と一部の管理部(財務・経理系)、開発部。

弊社はまだ会社規模も小さく、基本的に情報は特段の必要(人事関連とか)がない限りオープンにしようという社風もあることから特にアクセス制限はかけずフルオープンな状態です。これがかなり権限設定の難易度を下げていると思います。(つってもめちゃくちゃ苦労したんですが…)
以上を前提条件として読み進めていただければ捉えやすいかと思います。

整理前の状況

こんな感じでした。

画像1

中級ユーザ多いな???????
そしてPrefixの付け方もバラバラです、あとtempという目をそむけたくなる単語も見えます。

画像14

Prefixすらついてない野良中級ユーザもいました。

このような有様なので、上位権限をつけたはずが、下位権限のときにできていた作業ができなくなる、などの事故も発生しており都度欠損している権限を探ってはまた継ぎ足し…(なお問題のあったプロファイルしか変更しないのでまた同位のはずの権限と差分が生まれるという悪循環)。

スクリーンショット 2021-09-24 17.49.30

↑はプロファイル変更だけでなくユーザそのものへ権限割り当てしなければいけないユーザだったのにつけ忘れてる例(その節は本当に…)

どのように変えたか

最終的にはこうなりました。

画像4

カスタムプロファイルは2つまで絞りました。いまのところ使っているプロファイルはこの2つとデフォルトプロファイルであるシステム管理者の3つのみです。圧倒的に管理がしやすい。
じゃあ細かい権限割り振りはどうすんだよという話ですが、権限セット側に任せています。

画像5

こんな感じで、実行したいアクション単位で権限セットを作成し(なんちゃってDDDを意識)、追加権限の中身は一覧できるようにスプレッドシートに記録しています。
最終的に部署ごとの基本権限と

画像6

追加権限を一覧表にしました。

画像7

ここまでできると付与する側も申請する側も必要な権限が明瞭になり、付与ミスもかなり減りました。
変更セットによる新項目リリース時も地味に楽。。。

ここから先は上記の形になるまでにどのように思考したか、どんな制限があったのか、社内調整のあれこれなどを書いていきます。
環境や前提が全然違うよって方も設計時の思考整理の手助けになれば幸いです。(でもめっちゃ長くなりそうなので必要そうなとこだけかいつまんでください)

【権限周りの仕様理解】

ここらへんは以下の記事にかなり助けていただきました。この場を借りてお礼を申し上げます。

組織のユーザに権限を割り当てる - Synergy Lead
https://www.synergy-marketing.co.jp/cloud/synergylead/support/act-salesforce-permission-settings/ 
Salesforceプロファイル権限の綺麗な設計方法 - 筒見憲介
https://note.com/kensuke_tsutsumi/n/na0d7df4bb407 

他にもいろんな記事を参考にしつつ、以下のように整理しました。

<各権限のユーザとの関係性>
ユーザ ─ 1 ライセンス
   └ 1 プロファイル
   └ 1 ロール
   └ n 権限セット OR 権限セットグループ
   └ n 権限セットライセンス(有償)

<各権限の位置付け>
ライセンス:実行できる機能(動作)を決めるもの。どれだけお金払ってるかともいう。カスタマイズ不可。

プロファイル:"ライセンスの実行範囲内"で実行できる機能(動作)を決めるもの。最初はだいたいこれだけを使って制御しようとしてカオス状態になる。(※n=1)

ロール:アクセスできる範囲(レコード)を決めるもの。あと売上予測機能とかリストビューとかでも使える、らしいけど絶妙に使いづらい。

権限セット:プロファイルで指定した範囲外の機能(動作)を許可する → つまり基本の権限から範囲を緩める感じ。

権限セットグループ:複数の権限セットをまとめられる機能。営業部でよく使うものセットとか役員用アクセスセットとか作ったらいいんやと思う。

権限セットライセンス:主に有料の権限
権限セットライセンスを付与後、加えて関連する権限セットも付与しないと機能しないものもある。
(例) Inbox (権限セットライセンス「Inbox」を付与するだけでは開封履歴が見られず、権限セットで「Inbox(Einstein 活動キャプチャあり)」を割り当てる必要あり。

ややこしすぎる。
これ完全理解してる人いるんかな?権限セットライセンスは意味わからんすぎて思わず声が出た。
全部をきれいにするのは無理なので次の作業。

【各権限の役割を見て整理対象/範囲を決める】

ライセンス:対象内
スタディストで利用しているライセンスは以下
・Salesforce
・Identity(SalesforceをIdPとして他サービスにログインするためのライセンス。スタディストではPardotのみ利用するユーザ向けに利用)
・Teamspilt(TeamSpiritのみ利用するユーザ向け)
→ 必要な人に適切なものを割り当てるっていういわゆる答えがある系の類なので対象内だけどほぼなにも考えなくていいやつ

プロファイル:対象内
本丸そして鬼門。

ロール:対象外
弊社環境でも触れたようにスタディストではフルアクセスできてOKなため、対象外に。予実管理機能とかでも使えるっぽいけどめんど(ry

権限セット:対象内
これ使えばプロファイルすっきりできそうなので

権限セットグループ:対象外
最初は使う予定だったが、権限セットグループで付与した権限セットがユーザ画面の権限セット一覧に出てこないことが途中で発覚し、わかりづらくなりそうだったため利用しないことに

権限セットライセンス:対象内
せっかく買ってるのに誰にも付与されてないライセンスが見つかるなどした。持ち腐れ解消に動く。

【構成設計】

まず、プロファイルと権限セットで設定できる権限範囲を比較してみたところ、少なくともスタディストの今の使い方であればプロファイルでだけしか設定できない動作はありませんでした。
そのため、基本的に細かな権限は権限セット側で制御することにし、プロファイルは最小単位で運用するよう考えることにしました。

当初考えたパターンは3通り。
1) 部署ごとにわける
営業部
マーケティング部
カスタマーサクセス部…

2) 利用ライセンスごとに分ける
Sales Cloud User
Service Cloud User

3) とにかく絞る
Studist User

結果的に3(にPardotの仕様の都合が入って+1種類)になりましたが、当初社内で相談したところ1の部署ごと派の人が多かったです。ただ、フルアクセスOKな環境なため、現時点ではプロファイルの中身が変わらないこと(つまりメンテコストだけがかさむ)、部署異動のたびに付け替え業務が発生するのは避けたいことなどを加味するとナシに。(相談しておいて結局自論に持っていく奴)
2は整理作業中にライセンスをSales Cloud Userに寄せていくことに決まったので自然と消え、3に落ち着いた感じです。

【プロファイル/権限セットの中身決め】

兎にも角にも現状把握、ということでデータローダを使ってすべてのプロファイル状態を引っ張ってきました。
プロファイル数、44個。
権限項目数、285種類。
心が折れかけます。実際そのあと1か月くらい停滞しました。
みかねた同僚が手を差し伸べてくれ、各プロファイルの権限差分が視覚的に判別できるようにデータを加工してくれました。

画像8

「すごすぎる…いったいどんな高度な関数を…?!」と聞いたらTrueとFalseで色付けしてからシートの倍率めっちゃ低くして俯瞰できるようにした上で、列ごとに手動でドラッグアンドドロップしただけ、とのこと。コロンブスの卵すぎるだろ。

おかげでデフォルトプロファイルである標準ユーザと逆のBooleanになっている権限を洗い出すことができたので、今度は差分権限の精査をしていきます。

画像9

データローダから引っ張るとわかるようでわからない英語でしか権限名がとってこれなかったのでこれまたインターネットで見つけましたサイト( https://dackdive.hateblo.jp/entry/2018/03/24/100000 )の内容とVlookupで突合作業を行いました。インターネットに助けられてばかりです。

権限内容を見て
・全体(プロファイルにて付与)
・一部(権限セットにて付与)
・システム管理者のみ
・付与なし
の4種類にわけていきます。さらに「一部(権限セットにて付与)」に指定したものはそれに絞って業務ごとに権限セット名を作成し振り分けを行いました。

できた表の内容に従って、新たなプロファイルと権限セットを作成します。

中には、というか体感半分くらいは突合させた日本語名を見てもちんぷんかんぷんな権限がありますが、それは次の作業で潰していきます。

【不要なプロファイルの殲滅】

データローダでユーザ情報を取得し、プロファイルと突合させて各プロファイルの利用者とその数を特定します。

画像10

利用者が少ないプロファイルは利用者にそのプロファイルを作成した経緯を聞きに行きます、それでちんぷん権限の謎を解きにいくつもりだったんですが、ほとんどのパターンで「一時的にやりたかったことがあっただけ OR よくわかんない から通常権限に戻してもらってOK」と返答があったのでいざとなれば履歴も残してるし、とサクサク削除候補を増やしていくことができました。

【権限一覧表の作成】

画像12

画像13

部署ごとに必要であろう権限をまとめます。
ここまで明文化してあればアカウント発行の属人化からも解放されますね。(ちなみに自分の所属するビジネステクノロジーユニットでは事あるごとに「明日自分が死んでも問題ないようにしときました」という発言がなされます、物騒だけど大事)

【Before→Afterがわかる権限一覧シートを作成】

プロファイル、権限セット、権限セットライセンス、ユーザ権限の付与状態をユーザデータと突合して、Before状態がわかるシートを作成します。
そこから1ユーザずつ上で作った表通りに修正していきます。そのとき、前後比較ができるように以前の状態がわかるままでAfterの内容を書いていくようにしました。

スクリーンショット 2021-09-24 16.48.48

グレー: ついてたけどなくすもの
赤: 必須権限として追加するもの
紫: 追加権限として追加するもの
(黄: Service CloudからSales Cloudに統一したら変更するもの)
という区分けで色分けしています。

【ユーザへの周知】

地味にここが一番肝です。平和な大型変更はまず根回しから!
流れとしてはSalesforce ワーキンググループメンバー(=SFよく触ってくれるユーザ)へ内容共有 → 部門長会議での頭出し → Slackでの告知 → (1週間の確認期間を置いたのち)切り替え作業 としました。

スクリーンショット 2021-09-24 17.15.51

ただでさえ権限周りはややこしいためシートだけ見といてね!してもなんのこっちゃとなってしまうので、変更点にてサマリを、実施背景にて「こんなメリットがあるんすよ」ということを書いた上で作業を依頼しました。
これでも難しいもんは難しいので、全員に確認作業をやってもらうのは期待せず、実施予定日として期限を切っておきました。
大事なのは「切り替え作業を行うに関係者に周知をしておくこと」、なんんとなくだけでも関係各社の頭の片隅に情報が残せていれば無用の混乱を避けることができます。

【切り替え作業】

と言いつつもいくら周知をしてても怖いものは怖いのであんまりSalesforce触られてなさそうな時間帯に作業を実施します。

つらそうですね。

このとき、もう使わなくなったプロファイルや権限セットはまだ削除しないでおきました。なんかあったときに究極切り戻せるし、という気持ちを持っておくのは精神の安寧のために大事です。

作業が終わったら、再度ユーザに向けて周知を行います。
その際に、「この機能使えなくなっちゃったっぽい」「これ使うにはどうしたらいいですか?」という問い合わせがじゃんじゃか来ますがなるはやで対処していきます。だいたいは先に周知した内容通りになってるけどそれじゃ権限足りんかった案件なので権限状態シート更新とあわせてSalesforceに反映します。
その中で、「この部署はみんなこの機能いるのか…」とかもわかってくるのでその場合は権限一覧表に反映させます。

【不要なプロファイルやら権限セットやらの削除】

問い合わせも1〜2週間でだいたい収まるのですが、念のため余裕を持って2ヶ月位置いてから不要になったプロファイルや権限セットを削除しました。


============================================
かなり長くなってしまいましたが、権限まわりの整理は以上のような流れで実施しました。秘伝のタレからクックパッドお手軽レシピくらいに生まれ変わったんじゃないかと思います(?)
昨今、Salesforce内のデータ流出事案などもあったので、必要な権限を必要な人にだけ、というのが整理できて安心できました。(個人的には社長ならびに役員から強権限をはがせたのが嬉しい)

これでも端折ってしまった部分もあるので、詳しく知りたいって方がおられましたら、Twitterででも話しかけてもらえたら幸いです。

(おまけ)苦戦どころ

Pardotの権限設定やっかいすぎぃ
・Identityユーザ
・SalesforceのプロファイルにPardot権限も引っ張られる
・そもそもどこまで権限渡そう

もう流石にいらんやろとあるユーザ停止したらMiitel使えなくなった事件

レポートの編集権限、微妙にやっかいじゃない?

上記の件はまた気が向いたらどっかで書くかもしれません

この記事が気に入ったらサポートをしてみませんか?