カスタムロールのベストプラクティス (プレビュー)
複数の部門・担当が 1 つ以上のプロジェクトで共同作業している場合は、カスタムロールの作成を検討してください。カスタムロールを使用すると、部門・担当が必要なリソースにアクセスし、それらのリソースに対して適切な権限を持つことができるようになります。
カスタムロールに追加するアクションやリソースグループを決めるときの参考として、組込みロールの設定を表示して確認することもできます。
カスタムロールの計画
最初のステップは、カスタムロールの計画を立てることです。
現在、各人が担っている役割(ロール)について考えてみましょう。
例えば、他の開発者とは異なるアクセスが必要なマネージャや主任開発者がいますか?
部門・担当が作業する必要のあるリソースについて考えみましょう。
例えば、静的スキャンを使用して脆弱性を確認する部門・担当はありますか?その場合、スキャンプロジェクトへのアクセスが必要になるでしょう。
部門・担当がどのアプリケーションで作業するかを考え、確実にアクセスできるようにしましょう。
アクセスする必要があるリソースに対して、各人が実行する必要がある処理や操作について考えましょう。
例えば、各担当者が組織の設定を変更する必要がありますか?スキャンを行うためにアーティファクトをアップロードできる必要がありますか?アプリケーションデータにアクセスする必要はありますか?など。
リソースグループ
次のベストプラクティスを検討してください。
管理を容易にするために、1種類のリソースのみを含むリソースグループを作成します。例えば、プロジェクトのリソースを1つのグループにし、アプリケーションを別のグループにします。
組込みのリソースグループが要件に合っていれば、カスタムグループを作成する代わりにそれを使用することもできます。
ロールを使用して、異なるリソースグループに対してユーザが実行できるアクション(操作)を指定します。
例
カスタムロールを作成する1つの方法として、以下に例を示します。
この例では、eコマース製品を共同開発する開発部門のために、管理者がカスタムロールを作成していきます。
ステップ1:全てのカスタムロールの計画を立てる
現在のロール:このプロジェクトには、開発マネージャ、開発主任、ユーザインターフェイスに取り組むフロントエンド開発者、サービスおよびAPIを作成するバックエンド開発者がいます。これらの担当が全て共同で作業をしています。
リソース:eコマース製品には、Contrastエージェントが組み込まれた共有アプリケーションとコンポーネント、および開発サイクルの初期段階でコードがスキャンされるスキャンプロジェクトがあります。
アクション:開発マネージャと主任は、アプリケーションとスキャンプロジェクトの全ての設定を管理できる必要があります。フロントエンド開発者は、共有されたユーザインターフェイスモジュールにアクセスできる必要があります。バックエンド開発者は、APIとバックエンド サービスにアクセスできる必要があります。
ステップ2:カスタムリソースグループを作成する
ユーザごとに割り当てる必要があるさまざまなアクセス許可に対応するために、次のリソースグループを作成します。
共有UIアプリケーション:このリソースグループには、フロントエンド開発者が実行時にテストする必要があるUIに特化したアプリケーションを含めます。
共有UIプロジェクト:このリソースグループには、フロントエンド開発者が開発の初期段階で脆弱性を見つけるために実行する、UIに特化したスキャンプロジェクトを含めます。
共有APIアプリケーション:このリソースグループには、バックエンド開発者が実行時にテストする必要がある共有APIアプリケーションを含めます。
共有バックエンドサービス:このリソースグループには、バックエンド開発者が実行時にテストする必要がある共有サービスを含めます。
全てのリソースグループを eコマース開発という、親リソースグループにグループ化します。
全てのカスタムロールに親グループを含めることにします。アクションを使用して、特定のリソースにアクセスできるロールと、これらのリソースに対してユーザが持つ権限を決定します。
ステップ3:カスタムロールを作成する
親リソースグループである「eコマース開発」を特定のアクションで使用するように、以下のロールを設定します。
eコマース管理者:このロールは、eコマース開発マネージャと主任のためのものです。このロールには、以下のアクションを含めます。
アプリケーションのルール管理:AssessルールやProtectルールの変更、修復ポリシーの設定、ライブラリポリシーの設定などのタスクを実行できます。
アプリケーションの管理:アプリケーションの設定を変更できます。
プロジェクトの作成 :スキャンプロジェクトを作成できます。
プロジェクトの閲覧、編集、削除:スキャンプロジェクトの表示、編集、作成ができます。
プロジェクトの削除:スキャンプロジェクトの削除ができます。
組織の閲覧:スコアの設定やAPIキーの取得などのタスクを実行できます。
eコマースフロントエンド開発者:このロールは、eコマースのフロントエンド開発者のためのものです。このロールには、以下のアクションを含めます。
アプリケーションの閲覧:アプリケーションのデータ(脆弱性、アプリケーションの情報、ライブラリの情報など)を表示できます。
アプリケーションの編集:アプリケーションのマージ、バグ管理システムへのデータ送信、脆弱性の設定の編集などのタスクを実行できます。
組織の閲覧:スコアの設定やAPIキーの取得などのタスクを実行できます。
スキャンのアップロード:既存のスキャンプロジェクトのコードの脆弱性をスキャンできます。
このアクションは、Contrast Webインターフェイスへのコードのアップロード、CLIの使用、スキャンローカルエンジンの使用に適用されます。プロジェクトを作成するユーザには、「プロジェクトの作成」アクションおよび「プロジェクトの閲覧、編集、削除」アクションが必要です。
eコマースバックエンド開発者:このロールは、eコマースのバックエンド開発者のためのものです。このロールには、以下のアクションを含めます。
アプリケーションの閲覧:アプリケーションのデータ(脆弱性、アプリケーションの情報、ライブラリの情報など)を表示できます。
アプリケーションの編集:アプリケーションのマージ、バグ管理システムへのデータ送信、脆弱性の設定の編集などのタスクを実行できます。
組織の閲覧:スコアの設定やAPIキーの取得などのタスクを実行できます。
ステップ4:カスタムユーザグループを作成する
ロールごとにユーザアクセスグループを作成し、アクセスが必要なリソースに基づいて、個々のユーザを割り当てます。
eコマース管理グループ:「eコマース管理者」ロールのある全てのユーザを入れます。
eコマースフロントエンド開発グループ: 「eコマースフロントエンド開発者」ロールのある全てのユーザを入れます。
eコマースバックエンド開発グループ:「eコマースバックエンド開発者」ロールのある全てのユーザを入れます。