For AI agents: the complete documentation index is available at https://docs.dataplatform.ovh.net/ja/llms.txt, the full documentation bundle is available at https://docs.dataplatform.ovh.net/ja/llms-full.txt, and this page is available as Markdown at https://docs.dataplatform.ovh.net/ja/lakehouse-manager-policy-tags-groups-example.md.
  • 🇯🇵 日本語
  • 例: グループを使用したチームアクセス

    このチュートリアルでは、ポリシーテグをIAMグループとロールと一緒に使用して、チームメンバーのデータアクセスを管理する方法を説明します

    目的

    このチュートリアルでは、ポリシーテグIAMグループロールと一緒に使用して、チームメンバーのデータアクセスを管理する方法を説明します。グループのロールバインドにCEL条件を割り当てることで、グループに追加されたすべてのユーザーが自動的に正しいアクセスレベルを継承します。

    目次

    1. シナリオ
    2. ステップ1: タグスキーマの設計
    3. ステップ2: ポリシーテグの作成とバインド
    4. ステップ3: IAMグループの作成
    5. ステップ4: グループのCEL条件の設定
    6. ステップ5: ユーザーをグループに追加
    7. ステップ6: アクセスの確認
    8. 設定の拡張

    シナリオ

    貴社には、employee_dataというデータセットがあり、以下のテーブルを含みます。

    テーブル説明アクセス可能なユーザー
    office_locationsオフィスの住所、フロアプラン全員
    team_directory従業員の名前、役職、部署全員
    salary_details報酬、ボーナス、株式HRのみ
    performance_reviewsレビュースコア、マネージャーのメモ管理職のみ

    salary_detailsテーブルには、個人を特定できる情報(PII)を含む属性national_idがあり、これは上級HRスタッフのみがアクセス可能です。

    目標: 新しいチームメンバー(新入社員)はoffice_locationsteam_directory]にアクセスできる必要がありますが、salary_detailsperformance_reviewsにはアクセスできません。HRスタッフは給与データにアクセスできますが、上級HRでない限りnational_idを見ることはできません。

    ステップ1: タグスキーマの設計

    ポリシーテグキーaccess_levelを3つの値で作成します。

    目的
    generalベースラインアクセス。すべての従業員
    hrHR制限データ(給与、福利厚生)
    management管理職制限データ(レビュー、メモ)

    さらに、タグキーpiiを1つの値で作成します。

    目的
    restricted個人を特定できる情報、上級HRのみ

    ステップ2: ポリシーテグの作成とバインド

    ポリシーテグaccess_level(値generalhrmanagement)とpii(値restricted)を作成します。

    次にデータにバインドします。

    リソースタグ
    データセット employee_dataaccess_level: general
    テーブル salary_detailsaccess_level: hr
    テーブル performance_reviewsaccess_level: management
    属性 salary_details.national_idpii: restricted

    テーブルoffice_locationsteam_directoryには明示的なタグがありません。これらはデータセットからaccess_level: generalを継承します。

    flowchart TD
        DS["employee_data<br/><b>access_level: general</b>"]
        DS --> T1["office_locations<br/><i>inherits: general</i>"]
        DS --> T2["team_directory<br/><i>inherits: general</i>"]
        DS --> T3["salary_details<br/><b>access_level: hr</b>"]
        DS --> T4["performance_reviews<br/><b>access_level: management</b>"]
        T3 --> A1["national_id<br/><b>pii: restricted</b>"]
        T3 --> A2["other columns<br/><i>inherits: hr</i>"]
    
        style DS fill:#0089C0,color:#fff
        style T1 fill:#e8f4f8
        style T2 fill:#e8f4f8
        style T3 fill:#f0ad4e,color:#fff
        style T4 fill:#d9534f,color:#fff
        style A1 fill:#d9534f,color:#fff
        style A2 fill:#f0ad4e,color:#fff

    ステップ3: IAMグループの作成

    Identity Access Managerで3つのグループを作成します。

    グループ目的
    New Joiners新しいチームメンバー、一般アクセスのみ
    HR TeamHRスタッフ、給与データ(PIIを除く)へのアクセス
    Senior HR上級HR、PIIを含むフルアクセス

    各グループにADAC Readerロール(またはAdvanced Data Access Control読み取り権限を含む適切なロール)を割り当てます。

    Info

    グループの作成とロールの割り当ての手順については、Groupsを参照してください。

    ステップ4: グループのCEL条件の設定

    各グループのADACロールバインドに対して、IAMでCEL条件を設定します。条件はゲートチェーンの順序に従う必要があります。データセット→テーブル→属性。

    New Joiners: generalデータへのアクセスのみ:

    Service == "adac" && (
      (PolicyTags.access_level == "general" && Resource == "dataset")
      || (PolicyTags.access_level == "general" && Resource == "table")
      || (PolicyTags.access_level == "general" && Resource == "attribute")
    )

    このCELはaccess_level: generalをすべてのレベルで強制します。新入社員はoffice_locationsteam_directory(データセットからgeneralを継承)にアクセスできますが、salary_detailshr)やperformance_reviewsmanagement)にはアクセスできません。

    HR Team: general + hrデータへのアクセス、ただしPII属性は不可:

    Service == "adac" && (
      (PolicyTags.access_level == "general" && Resource == "dataset")
      || (PolicyTags.access_level in ["general", "hr"] && Resource == "table")
      || (PolicyTags.access_level in ["general", "hr"] && !has(PolicyTags.pii) && Resource == "attribute")
    )

    このCELは以下のように動作します。

    • データセットレベル: access_level: generalが必要です: employee_dataで通過します
    • テーブルレベル: generalまたはhrを許可します: performance_reviewsmanagement)を除くすべてのテーブルで通過します
    • 属性レベル: generalまたはhrを許可しますが、piiタグが存在しない必要があります: national_idpii: restrictedがある)を拒否します
    Info

    !has(PolicyTags.pii)チェックにより、piiキーでタグ付けされた属性は、その値に関係なく拒否されます。これはPIIの包括的な保護に役立ちます。

    Senior HR: general + hrデータを含むPIIへのフルアクセス:

    Service == "adac" && (
      (PolicyTags.access_level == "general" && Resource == "dataset")
      || (PolicyTags.access_level in ["general", "hr"] && Resource == "table")
      || (PolicyTags.access_level in ["general", "hr"] && Resource == "attribute")
    )

    このCELはHR Teamと同じですが、!has(PolicyTags.pii)制限がありません。上級HRはnational_idにアクセスできます。

    Warning

    これらのCEL条件を編集するには、IAMのグループのロールバインドに移動し、CELエディタに切り替えます。手順については、Writing CEL Conditions Manuallyを参照してください。

    ステップ5: ユーザーをグループに追加

    新しいチームメンバーが加わった場合:

    1. IAMでユーザーアカウントを作成します。
    2. 必要なベースロールを割り当てます。
      • 組織レベル: Organization Viewer
      • プロジェクトレベル: AM Admin(または作業に適したロール)
    3. ユーザーをNew Joinersグループに追加します。

    これで完了です。グループのCEL条件が自動的にgeneralタグ付きデータへのアクセスを許可します。個別のCEL条件を設定する必要はありません。

    HRチームに移動した場合:

    1. New Joinersからユーザーを削除します。
    2. HR Teamにユーザーを追加します。

    アクセスはすぐに更新されます。ユーザーはsalary_detailsnational_idを除く)に加えて一般テーブルを見ることができます。

    ステップ6: アクセスの確認

    Explorerを使用して、各グループのユーザーのアクセスを確認します。

    New Joinerとして:

    クエリ予想される結果
    SELECT * FROM office_locations成功、generalを継承
    SELECT * FROM team_directory成功、generalを継承
    SELECT * FROM salary_detailsエラー、テーブルにはhrが必要
    SELECT * FROM performance_reviewsエラー、テーブルにはmanagementが必要

    HR Teamメンバーとして:

    クエリ予想される結果
    SELECT * FROM office_locations成功
    SELECT * FROM salary_detailsエラー、SELECT *にはnational_id(PII)が含まれる
    SELECT name, salary, bonus FROM salary_details成功。PII列はない
    SELECT national_id FROM salary_detailsエラー、national_idにはpii: restrictedがある
    SELECT * FROM performance_reviewsエラー、テーブルにはmanagementが必要

    Senior HRとして:

    クエリ予想される結果
    SELECT * FROM salary_details成功、national_idを含む
    SELECT * FROM performance_reviewsエラー、managementが必要

    設定の拡張

    管理グループの追加

    マネージャーにperformance_reviewsへのアクセス権を付与するには、ManagementグループをこのCELで作成します。

    Service == "adac" && (
      (PolicyTags.access_level == "general" && Resource == "dataset")
      || (PolicyTags.access_level in ["general", "management"] && Resource == "table")
      || (PolicyTags.access_level in ["general", "management"] && Resource == "attribute")
    )

    複数のグループに属するユーザー

    ユーザーは複数のグループに属することができます。誰かがHR TeamManagementの両方に属している場合、両方のグループの権限の和を取得します。彼らはsalary_detailsperformance_reviewsの両方にアクセスできます。

    Info

    ユーザーが複数のグループに属している場合、各グループのロールバインドは独立して評価されます。どのロールバインドのCEL条件が通過すれば、ユーザーにアクセス権が付与されます。これにより、複数グループの設定は加算的になります。

    サービスアカウント

    サービスアカウントもグループに追加できます。レポートパイプラインが一般的なデータを読み取る必要がある場合、個々のCEL条件を設定する代わりに、そのサービスアカウントをNew Joinersグループに追加してください。

    さらに進む

    当社のソリューションを実装するためのトレーニングや技術的なアシスタンスが必要な場合は、営業担当者にお問い合わせください、またはこのリンクをクリックして、プロフェッショナルサービスの専門家に見積もりを依頼し、プロジェクトのカスタム分析を依頼してください。

    Data Platformを構築するチームと直接質問し、フィードバックを共有し、交流するには、専用のDiscordチャンネルにアクセスしてください。

    OVHcloudサービスについてサポートが必要な場合は、ヘルプセンターでリクエストを作成してください。

    ユーザーコミュニティに参加してください。