OCIでのタグベースのアクセス制御による管理Oracle Cloudコンソール・エクスペリエンスの向上 (2025/02/24)
OCIでのタグベースのアクセス制御による管理Oracle Cloudコンソール・エクスペリエンスの向上 (2025/02/24)
https://blogs.oracle.com/cloud-infrastructure/post/improving-console-experience-with-tbac-in-oci
投稿者: Kabelo Kusane | OCI Infrastructure Security Specialist - EMEA
Oracle Cloud Infrastructure (OCI) Taggingでは、キーと値のペアの形式でリソースをリソースに追加できます。タグ付けの主なユース・ケースの1つは、アクセス制御です。OCI Identity and Access Management (IAM)ポリシーのタグを使用して、タグ付けされたリソースに対する作成、読取り、更新および削除(CRUD)権限を持つユーザーを制御できます。
タグベースのアクセス制御(TBAC)では、タグ・セットのある条件を使用して、リソースに適用されたタグに基づいてアクセスのスコープを設定できます。アクセスは、グループ、動的グループ、コンパートメントなどのリクエスト元のリソースに存在するタグ、またはリソースやコンパートメントなどのリクエストのターゲットに存在するタグに基づいて制御できます。
現在、ターゲット・リソースに適用されたタグに基づいてアクセスをスコープ指定するOCI IAMポリシーでは、リソースのリストを返す権限は許可されません。この除外により、ユーザーは、コンソールで管理が許可されているリソースを表示することが困難になります。
この投稿では、適用されたタグに基づいてアクセスのスコープを設定するIAMポリシーを使用してリソースをリストする方法を紹介します。このアプローチでは、ユーザーが管理するリソースを表示できるようにすることでコンソールをより簡単に使用できるようになり、エンド・ユーザー・エクスペリエンスが向上するため、タグベースのポリシーが改善されます。
シナリオの例
OCIテナンシのリソースへのより詳細なアクセス権を付与する要件があるシナリオを考えてみます。TBACを使用することを選択できます。これにより、条件および一連のタグ変数を使用して、リソースに適用したタグに基づいてアクセスのスコープを設定するポリシーを記述できます。
図2に示すように、この方法では、テナンシに特定のコンパートメントの下のリソース・セットがあり、DemoGroup1のメンバーが特定のコンパートメント内の特定のリソースへのフル・アクセス権を持つことを前提としています。この目標を達成するには、次のステップを使用します。
- DemoGroup1のメンバーにアクセス権が付与されるタグ固有のリソース。
- IAMポリシー(図1)を記述して、リソースに適用したタグに基づいてアクセスのスコープを設定します。このポリシーは、タグ付けされたリソースに対するDemoGroup1のメンバーへのフル・アクセス権を付与します。
図1: タグベースのアクセスを持つIAMポリシー
図2: コンパートメント内のリソースへのタグの適用
IAMポリシー・ステートメントを使用して権限が定義されている場合、DemoGroup1のメンバーには、コンソールでリソースを表示および管理するために必要なアクセス権があります。ただし、DemoGroup1のメンバーにはリソースへのフル・アクセス権が付与されていますが、これらのユーザーがコンソールにアクセスすると、管理が許可されているリソースは表示できません。次の図に示すように、ユーザーがリソースにアクセスしようとすると、認可エラーが発生します。
図3: 「インスタンス」ページの認可エラー
図4: 「バケット」ページの認可エラー
図5: 「ロード・バランサ」ページの認可エラー
これらのユーザー(DemoGroup1のメンバー)は、フル・アクセス権が割り当てられているリソースを表示できません。TBACでは、ターゲット・リソースに適用されたタグに基づいてアクセスをスコープ指定するIAMポリシーで、リソースのリストを返すことができる権限を許可できません。その結果、DemoGroup1では、これらのユーザーが管理を許可されているリソースはリストできません。DemoGroup1のメンバーは、図3、4および5に示されているエラーに示すように、コンソールを使用してこれらのリソースを操作することはできません。
これらのリソースのリストおよび表示を有効にするには、ポリシーへのアクセスの拡張が必要です。リソースのリストを許可するには、別のポリシー・ステートメントに権限(inspectまたはread)を付与する必要があります。DemoGroup1でこれらのリソースをリストできるようにするには、別のポリシー・ステートメントを追加する必要があります:
図6: アクセスが拡張されたIAMポリシー
図7: 拡張アクセスを示すコンパートメント図
追加されたポリシー・ステートメントによってリソースのリストを許可する権限が付与されると、DemoGroup1のメンバーはコンソールでリソースを表示および管理できます。
図8: 追加されたポリシー・ステートメントでバケットにアクセスできるようになりました
図9: 追加されたポリシー・ステートメントでロード・バランサにアクセスできるようになりました
図10: 追加されたポリシー・ステートメントでインスタンスにアクセスできるようになりました
他のリソースとは異なり、別のポリシー・ステートメントで検査権限を付与してアクセスを拡張すると、コンソールには、ホスト名ではなくOracle Cloud Identifier (OCID)でインスタンスがリストされます。ユーザーがインスタンスを管理するには、インスタンスOCIDを知っている必要があります。ユーザー・エクスペリエンスの観点から見ると、これらのインスタンスの管理はより困難です。
この問題を回避するには、(inspectではなく)別のポリシー・ステートメントで読取り権限を付与して、OCIDのかわりにホスト名が表示されたインスタンスのリストを許可します。
図11: OCIDsではなくホスト名を持つインスタンスを表示するポリシー・ステートメントの追加
図12: 許可された読取りアクセスを示すコンパートメント図
コンソールから、DemoGroup1のメンバーは、OCIDのかわりにホスト名が表示されているインスタンスを表示できます。
図13: OCIDのかわりにホスト名が表示されたインスタンス
まとめ
タグベースのアクセス制御により、コンパートメント、グループおよびリソースにまたがるタグでアクセス・ポリシーを定義できるため、ポリシーの柔軟性が高まります。条件およびタグ変数のセットを使用して、リソースに適用されたタグに基づいてアクセスをスコープ指定するポリシーを記述できます。アクセスは、リクエスト元のリソース(グループ、動的グループ、コンパートメントなど)またはリクエストのターゲット(リソースやコンパートメントなど)に存在するタグに基づいて制御できます。
TBACでは、ターゲット・リソースに適用されたタグに基づいてアクセスをスコープ指定するIAMポリシーで、リソースのリストを返すことができる権限を許可できません。ポリシーへのアクセスの拡張が必要です。リソースのリストを許可するには、追加のポリシー・ステートメントにinspectまたはreadの権限を付与する必要があります。
詳細は、次のリソースを参照してください。
コメント
コメントを投稿