SnykのUser Roleを作成してみた #Snyk
おはようございます( ◜◡◝ )
ゲームソリューション部/業務効率化ソリューション部のきだぱんです。
Snykでユーザーロールをカスタマイズ可能なことをご存知でしょうか!
標準で用意されている「Admin(管理者)」や「Collaborator(コラボレーター)」といったロールだけではありません!
本記事では、カスタムロールを作成していきたいと思います。
前提条件
まず、カスタムロール機能を利用するには以下の条件を満たしている必要があります。
- Snyk Enterprise プランであること
FreeプランやTeamプランでは利用できません。 - 適切な管理者権限を持っていること
設定を行うユーザーは「Group Admin(グループ管理者)」権限を持つロールである必要があります
さっそくカスタムロールを作成してみましょう!
設定画面へアクセス
対象のテナントへGroupを選択します。

Snyk UIの画面上部にある歯車アイコン(Settings)をクリックし、左メニューから [Member Roles] を選択します。

デフォルトで設定されているロールはこちらにも表示されていますね

- New role name
- Role Type
- Group
- Org
- Description
を入力します。
Groupの権限かOrganizationの権限かもここで選択します。

権限のカスタマイズ
大項目はこんな感じです。それぞれにView~やCreate~があります。
- Organization management
- Audit Log management
- Billing management
- Collection management
- Container Image management
- Entitlement management
- Integration management
- Kubernetes Integration management
- Package management
- Project management
- Ignore management
- Project pull request management
- Reports management
- SAST Rule Extensions Management
- Service account management
- Snyk Apps management
- Snyk Cloud management
- Snyk Preview management
必要な権限をチェックします。
必要な権限をカスタマイズしてもいいですし、Snyk社が出しているテンプレートもありますので参考に権限を付与します。


いきなり「Create new role」を押すのではなく、作成したい役割に近いロールを探し、対象ロールの横にある [Duplicate] をクリック。基本的な権限セットがコピーされた状態で編集をスタートできます!

作成してみました。ロール一覧に追加されます!

招待する時に選択できるようになりました。

Snyk APIでの権限管理
組織の規模が大きくなると、GUI画面で一人ひとりユーザーのロールを変更するのは現実的ではありません。
Snyk APIを活用すれば、社員の入社・異動に伴う権限変更をスクリプトで自動化したり、TerraformなどのIaCツールと連携させたりすることが可能です。
API利用の準備
APIを利用するには、SnykのAPIトークンが必要です。
- Authorization:
token <YOUR_API_TOKEN>
IDを取得する
まず、割り当てたいロールの正確なIDを特定します。
カスタムロールはGroupレベルで管理されることが多いため、以下のエンドポイントが推奨されます。
Request: GET /group/{groupId}/roles
curl --request GET \
--url https://api.snyk.io/v1/group/<YOUR_GROUP_ID>/roles
// Response(一部)
{
"orgs": [
{
"name": "Org-Developer",
"id": "xxx",
"slug": "xxx",
"url": "xxx.xxx",
"group": {}
}
]
}
ロールを更新する
取得した rolePublicId と userId を使用して、ロールを更新します。
Request PUT https://api.snyk.io/v1/org/{orgId}/members/update/{userId}
curl --request PUT \
--url https://api.snyk.io/v1/org/<YOUR_ORG_ID>/members/update/<USER_ID> \
--header 'Authorization: token <YOUR_API_TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
"rolePublicId": "aaaa..."
}'
さいごに
本記事では、Snykのカスタムロールを作成してみました。
標準の「Admin」や「Collaborator」だけではカバーしきれない、細かい権限設定も、カスタムロールを使えば柔軟に実現可能です。
Snykに関するブログも沢山展開されていますので、是非こちらもご覧ください。
この記事がどなたかのお役に立てば幸いです。
以上、きだぱんでした。








