セキュリティ - 組織のセキュリティ

認証パターン

[Well-Architected Trusted (適切に構築された信頼済み)] → [Secure (安全)] → [Organizational Security (組織のセキュリティ)] → [Authentication (認証)] の詳細

Where to look?
商品領域 | ロケーション
What does good look like? (良いものは?)
パターン
プラットフォーム | Apex ✅ 認証を実行するメソッドは、指定ログイン情報を使用してユーザー名/パスワードフローを処理します。
プラットフォーム | Apex ✅ ユーザー名やパスワードが判読可能な形式でコードに表示されない (ハードコードされた値や文字列がない)
プラットフォーム | Apex ✅ カスタム ログイン フローが存在する場合、関連するすべてのカスタム Apex で適切なSessionManagement方法が使用される
プラットフォーム | Aura ✅ ユーザー名やパスワードが判読可能な形式でコードに表示されない (ハードコードされた値や文字列がない)
プラットフォーム | Aura ✅ 認証を実行するメソッドは、指定ログイン情報を使用してユーザー名/パスワードフローを処理します。
プラットフォーム | ドキュメント ✅ 承認されたセキュリティ人格が明確に定義され、リストされている
プラットフォーム | ドキュメント ✅ セキュリティマトリックスにセキュリティ人格と許可された認証スキーム (UI、API) の対応付けが存在する
プラットフォーム | LWC(Lightning Web コンポーネント) ✅ 認証を実行するメソッドは、指定ログイン情報を使用してユーザー名/パスワードフローを処理します。
プラットフォーム | LWC(Lightning Web コンポーネント) ✅ ユーザー名やパスワードが判読可能な形式でコードに表示されない (ハードコードされた値や文字列がない)
プラットフォーム | 組織 ✅ API アクセスコントロールにより、未承認の接続アプリケーションによるユーザーの認証を防止
プラットフォーム | 組織 ✅ Salesforce にログインしているユーザーとエンティティのリレーションは 1 対 1 (共有ユーザーなし)
プラットフォーム | 組織 ✅ Salesforce MFA チェックに合わせたログイン設定
プラットフォーム | 組織 ✅ SSO が有効になっている場合、承認された管理者ユーザーには直接ログインアクセス権が付与されます。
プラットフォーム | 組織 ✅ ログインフォレンジックは、ログイン履歴を 6 か月以上保存する必要がある場合に使用されます。 ログインフォレンジックは、ログイン履歴を 6 か月~ 10 年間保存する必要がある場合に使用されます。

認証パターン

[Well-Architected Trusted (適切に構築された信頼済み)] → [Secure (安全)] → [Organizational Security (組織のセキュリティ)] → [Authorization (承認)] の詳細

Where to look?
商品領域 | ロケーション
What does good look like? (良いものは?)
パターン
Einstein | ボット ✅ ビジネス使用事例ごとに一意のボット ユーザーが設定されているボット構成の[Einstein ボット ビルダーの概要]セクションでは、最小権限の原則に従って、選択したボット ユーザーが、ボットが目的とするビジネスの目的を実行するために必要な最小限のアクセス権のみを提供します。
プラットフォーム | Apex ✅ DB 操作では、項目レベルおよびオブジェクトレベルのアクセスチェックを適切に実行 DML およびデータベース DML ステートメントでは、データ操作のユーザーモードまたはシステムモードを宣言します。また、DML およびデータベース DML ステートメントでは、データ操作の前にstripInaccessibleメソッドを使用します。
プラットフォーム | Apex ✅ データベース操作で項目レベルおよびオブジェクトレベルのアクセスチェックを適切に実行 SOQL および SOSL ステートメントでは、WITH USER_MODE および WITH SYSTEM_MODE キーワードを使用 AND/OR stripInaccessible メソッドを使用してクエリおよびサブクエリの結果を絞り込む
プラットフォーム | Apex ✅ データベース操作で項目レベルおよびオブジェクトレベルのアクセスチェックを適切に実行 sObject describe result メソッド(isAccessible、isCreateable、isUpdateable、isDeletable)は慎重に使用
プラットフォーム | 設計標準 ✅ 昇格した権限を付与する使用事例が明確にリストされています。たとえば、「すべてのデータの編集」権限、「すべてのデータの参照」権限などがあります。
プラットフォーム | ドキュメント ✅ Salesforce へのアクセス権を持つすべてのユーザーとシステムがセキュリティマトリックスの 1 つ以上の人格に対応付けられる
プラットフォーム | ドキュメント ✅ セキュリティマトリックスには、メタデータ権限と割り当てられたユーザー人格が明確にリストされています。
プラットフォーム | 組織 ✅ 権限セットと権限セットグループは、メタデータへのアクセスを制御するために使用されます。
プラットフォーム | 組織 ✅ 権限セットと権限セットグループはビジネス機能に合わせて調整
プラットフォーム | 組織 ✅ すべてのインテグレーションに一意の API 限定インテグレーションユーザーが設定されている
プラットフォーム | 組織 ✅ プロファイルはログイン IP アドレス範囲とログイン時間を制御するためにのみ最小限使用されます。
プラットフォーム | 組織 ✅ ユーザーに割り当てられた権限はセキュリティマトリックス定義に従う

認証アンチパターン

[Well-Architected Trusted (適切に構築された信頼済み)] → [Secure (安全)] → [Organizational Security (組織のセキュリティ)] → [Authentication (認証)] の詳細

Where to look?
商品領域 | ロケーション
What to avoid?
アンチパターン
プラットフォーム | Apex ⚠️ ユーザー名とパスワードがコードに表示される
プラットフォーム | Apex ⚠️ カスタムログインフローが存在する場合、セッションレベルセキュリティを割り当てるロジックはありません
プラットフォーム | Apex ⚠️ 認証がアドホックで処理される
プラットフォーム | Aura ⚠️ 認証がアドホックで処理される
プラットフォーム | Aura ⚠️ ユーザー名とパスワードがコードに表示される
プラットフォーム | ビジネス ⚠️ ユーザーのプロビジョニングとプロビジョニング解除の SLA と要件が存在しない
プラットフォーム | ドキュメント ⚠️ セキュリティ人格は含まれません
プラットフォーム | ドキュメント ⚠️ セキュリティマトリックスにセキュリティ人格と許可された認証スキームの明確な対応付けがない
プラットフォーム | LWC(Lightning Web コンポーネント) ⚠️ 認証がアドホックで処理される
プラットフォーム | LWC(Lightning Web コンポーネント) ⚠️ ユーザー名とパスワードがコードに表示される
プラットフォーム | 組織 ⚠️ API アクセスコントロールが有効になっていない
プラットフォーム | 組織 ⚠️ ユーザーがファイアウォールの内側から Salesforce にアクセスする場合、ファイアウォールはハードコードされた IP アドレスを使用して Salesforce との間の通信を保護します。
プラットフォーム | 組織 ⚠️ Salesforce にログインしているユーザーとエンティティのリレーションが 1 対 1 ではない (共有ユーザーアカウントがある)
プラットフォーム | 組織 ⚠️ SSO が有効になっている場合、承認済みのシステム管理者は直接ログインできません。
プラットフォーム | 組織 ⚠️ ログイン設定が Salesforce MFA チェックと一致していない
プラットフォーム | 組織 ⚠️ 従来の指定ログイン情報は外部システムへの認証に使用されます。 従来の指定ログイン情報を使用してコールアウトエンドポイントの URL とその必要な認証パラメーターを指定する

認証アンチパターン

[Well-Architected Trusted (適切に構築された信頼済み)] → [Secure (安全)] → [Organizational Security (組織のセキュリティ)] → [Authorization (承認)] の詳細

Where to look?
商品領域 | ロケーション
What to avoid?
アンチパターン
Einstein | ボット ⚠️ Einstein ボットが基本チャットボット ユーザーまたは「汎用」ボット ユーザーを使用しているボット構成の[Einstein ボット ビルダーの概要]セクションで、選択されたボット ユーザーは基本チャットボット ユーザーまたはさまざまなビジネス目的で使用されるボット間で共有される「汎用」カスタム チャットボット ユーザーです。
プラットフォーム | Apex ⚠️ DML、データベースクラスのメソッド、SOQL、SOSL がデフォルトのシステムモードで実行される
プラットフォーム | Apex ⚠️ データベース操作でアクセスチェックが適切に実行されない SOQL クエリでは、アクセス制限に WITH SECURITY_ENFORCED キーワードが排他的に使用される
プラットフォーム | Apex ⚠️ データベース操作でアクセスチェックが適切に実行されない DML またはデータベースクラスのメソッドでは、sObject および項目レベルのアクセスに対して isAccessible、isCreateable、isUpdateable、isDeletable チェックが排他的に使用される
プラットフォーム | 設計標準 ⚠️ 「すべてのデータの編集」権限 - 「すべてのデータの参照」権限など、昇格した権限を付与する使用事例が明確にリストされていない
プラットフォーム | ドキュメント ⚠️ メタデータ権限と割り当てられた人格が明確に記載されていない
プラットフォーム | ドキュメント ⚠️ ドキュメントにセキュリティマトリックスは含まれません
プラットフォーム | 組織 ⚠️ ユーザーに割り当てられた権限がセキュリティマトリックス定義に従っていない
プラットフォーム | 組織 ⚠️ プロファイルにはメタデータのアクセス制御が含まれます。
プラットフォーム | 組織 ⚠️ 権限セットがアドホックに設定されている
プラットフォーム | 組織 ⚠️ 権限セットグループがビジネス機能に基づいてアクセスできるように設定されていない
プラットフォーム | 組織 ⚠️ API 限定ユーザーが設定されていないか、複数のインテグレーションで共有されている
プラットフォーム | 組織 ⚠️ 権限セットが冗長であるか、大幅に重複しており、明確な機能ロジックやセット間の違いを理解するのが難しい