アクセス制御:基礎と実装
アクセス制御は情報セキュリティの基本的な柱の一つであり、誰がどのリソースに、いつ、どのような条件下でアクセスできるかを決定します。アクセス制御を適切に実装することで、機密情報を保護し、不正アクセスを防止し、法規制への準拠を確保します。
基本原則
アクセス制御は3つの主要な柱に基づいています:
- 識別:ユーザーが誰であるかを特定する(ユーザー名、メール、証明書)
- 認証:ユーザーが本人であることを検証する(パスワード、MFA、生体認証)
- 認可:ユーザーが何をできるかを決定する(権限、ポリシー)
アクセス制御モデル
RBAC (Role-Based Access Control)
ロールベースのモデルでは、権限をユーザーに直接ではなく、組織のロールに割り当てます:
- ユーザーにはロールが割り当てられます(Admin、Editor、Viewer)
- ロールには定義された権限のセットがあります
- 大規模な管理と監査を容易にします
- 安定した組織構造に適しています
ABAC (Attribute-Based Access Control)
属性ベースの制御により、動的な意思決定が可能になります:
- 複数の属性(ユーザー、リソース、コンテキスト、環境)を評価します
- 複雑できめ細かなポリシー
- 動的なシナリオに適応します
- 例:「営業時間内のみ、企業のIPからのアクセスを許可する」
DAC (Discretionary Access Control)
リソースの所有者が権限を定義するモデル:
- 柔軟だが安全性は低い
- ファイルシステム(Windows、Linux)で一般的
- 過剰な権限のリスク
MAC (Mandatory Access Control)
セキュリティ分類を伴う集中管理型の制御システム:
- 軍事および政府機関の環境で使用される
- 機密レベル(Top Secret、Secret、Confidential)に基づく
- ポリシーはユーザーではなく中央で定義される
最小権限の原則
効果的なセキュリティの基本:
- 厳密に必要な権限のみを付与する
- 権限を定期的に見直し、調整する
- 機密性の高い操作にはジャストインタイムアクセスを実装する
- 不正防止のための職務分掌
IDおよびアクセス管理 (IAM)
IAMシステムはアクセス制御を一元化し、自動化します:
- プロビジョニング:アカウントの作成と構成
- デプロビジョニング:アクセス権の安全な削除
- SSO (Single Sign-On):複数のシステムに対する単一認証
- MFA (Multi-Factor Authentication):追加の検証レイヤー
クラウド環境におけるアクセス制御
クラウド特有の課題:
- クラウドのIAMポリシー(AWS IAM、Azure AD、GCP IAM)
- アプリケーション用のService accountsとロール
- 複数のクラウド間でのIDフェデレーション
- キーとシークレットの管理(AWS Secrets Manager、Azure Key Vault)
監査とモニタリング
不正の検出とコンプライアンスの確保に不可欠です:
- 認証および認可のログ
- 異常なアクセスに対するアラート
- 定期的な権限の見直し
- コンプライアンスレポート(SOC 2、ISO 27001)
よくある課題
- Privilege Creep:時間の経過に伴う権限の蓄積
- 孤立アカウント:無効化されていない退職者のアカウント
- 過剰な権限:必要以上のアクセス権を持つユーザー
- 可視性の欠如:誰が何にアクセスできるかが把握されていない
ベストプラクティス
- 多要素認証(MFA)を普遍的に実装する
- 最小権限の原則を厳格に適用する
- プロビジョニングとデプロビジョニングを自動化する
- 権限を四半期ごとに見直す
- 環境を分離する(本番、開発、テスト)
- セッション制御を実装する(タイムアウト、再認証)
- 直接的な権限ではなくグループ/ロールを使用する
- 権限マトリックスを明確に文書化する
ツールとソリューション
- Okta、Auth0:クラウドネイティブのIAMプラットフォーム
- Azure AD、AWS IAM:クラウドプロバイダーのソリューション
- OpenLDAP、Active Directory:企業ディレクトリ
- HashiCorp Vault:シークレットと認証情報の管理
- SailPoint、Saviynt:IDガバナンス
