OCIポリシーの完全ガイド:継承、条件付きポリシー、最小権限、タグベース制御、動的グループ

Oracle Cloud Infrastructure Architect Associate 2024

Oracle Cloud Infrastructure(OCI)のポリシーは、クラウドリソースへのアクセス制御を可能にする重要な仕組みです。本記事では、ポリシーの基本構造から高度な機能(継承、条件付きポリシー、タグベース制御、ネットワークソース、動的グループ)まで、詳しく解説します。


ポリシーの継承とアタッチ

OCIのポリシーは、親コンパートメントから子コンパートメントに継承されます。この継承により、管理者が作成したポリシーを複数のレベルで適用可能です。

組み込みポリシー

OCIには、あらかじめ設定された管理者用ポリシーがあります。

textコードをコピーするAllow group Administrators to manage all-resources in tenancy

このポリシー(Tenant Admin Policy)は、テナンシ全体に適用され、すべてのリソースへの管理アクセスを許可します。

ポリシーアタッチ

ポリシーは特定の場所にアタッチ(関連付け)されます。アタッチ場所により、変更や削除可能なユーザーが制御されます。

  • アタッチ場所とコンパートメント名の指定方法
    アタッチ場所が異なると、ポリシー記述時のコンパートメント名の指定方法も変化します。

条件付きポリシー

条件付きポリシーを利用すると、Where句Condition句を活用して細かいアクセス制御が可能になります。条件がTrueFalse、またはNot Applicableに評価されることでアクセスが制御されます。

条件付きポリシーの構文

  1. 単一条件bashコードをコピーするwhere <変数名> = '<値>' where <変数名> != '<値>'
  2. 複数条件phpコードをコピーするany{<条件1>, <条件2>, ...} all{<条件1>, <条件2>, ...}
  3. 変数構造
    • request.<属性>: リクエスト自体に関する属性。
    • target.<属性>: リソースまたはターゲットに関する属性。

条件例

以下は特定の条件付きポリシーの記述例です:

textコードをコピーするallow group NetworkAdmins to manage instances in compartment Sandbox where request.permission = 'VOLUME_INSPECT'

最小権限の強制と拡張ポリシー

OCIでは、リソースへのアクセス権限を最小化する設計が推奨されます。

権限の付与

権限(AuthZの単位)は、操作を実行するユーザーの能力を制御します。以下の動詞を活用して簡略化されたポリシーを記述できます:

  • inspect: リソースのリスト化と非機密情報の取得。
  • read: リソースにアクセス可能だが変更不可。
  • use: リソースの操作(例: 起動、停止)。
  • manage: リソースの完全管理。

特定の条件で権限を付与する場合:

textコードをコピーするallow group DatabaseAdmins to manage databases in compartment Production where request.permission = 'VOLUME_READ'

タグベースのアクセス制御(TBAC)

タグベースのアクセス制御を使用すると、タグを利用して柔軟なポリシーを定義できます。これにより、リソースの管理が効率化されます。

TBACの仕組み

  1. 条件とタグ変数のセット
    条件付きポリシーと同様に、タグを条件として使用します。
  2. リソースとタグの紐づけ
    • リクエスト元のリソース(グループ、動的グループ、コンパートメント)。
    • リクエスト対象のリソース(コンパートメントや特定のリソース)。

特定のタグを持つリソースにのみアクセスを許可するポリシー:

textコードをコピーするallow group Developers to manage all-resources in compartment DevEnvironment where target.tag.key = 'Environment' and target.tag.value = 'Development'

ネットワークソースによるアクセス制御

ネットワークソースは、発信元のIPアドレスに基づいてアクセスを制御する仕組みです。

特徴

  • 指定可能な属性
    • パブリックIPアドレス。
    • VCNネットワーク。
  • 構成方法
    OCIコンソールの「アイデンティティメニュー」からネットワークソースを設定可能。

特定のIPアドレスからのアクセスを許可するポリシー:

textコードをコピーするallow group Admins to manage buckets in compartment Storage where request.network-source = 'TrustedIPs'

動的グループ

動的グループは、動的な属性に基づいてグループメンバーを定義する仕組みです。

プリンシパルの種類

  1. ユーザー: 組織内の従業員や管理者。
  2. インスタンス: OCIテナンシ内で動作する一意のコンピュートインスタンス。
  3. サービス: OCIが提供するサービス(例: オブジェクトストレージ、データベース)。
  4. リソース: OCIの特定のエンティティ(例: バケットやインスタンス)。

動的グループを活用したポリシーの記述:

textコードをコピーするallow dynamic-group InstanceGroup to read buckets in compartment DataStorage

まとめ

OCIのポリシーは、単純な権限付与から高度な条件付きポリシーやタグベースの制御まで、幅広い機能を提供します。以下のポイントを活用することで、より効率的でセキュアなアクセス管理が可能です:

  1. ポリシーの継承とアタッチで管理効率を向上。
  2. 条件付きポリシーで細かいアクセス制御を実現。
  3. 最小権限の強制でセキュリティを向上。
  4. タグベースのアクセス制御でリソース管理を柔軟化。
  5. ネットワークソースでIPアドレスによる制御を簡易化。
  6. 動的グループで属性に基づくグループ管理を効率化。
タイトルとURLをコピーしました