株式会社コーソル

コーソルDatabaseエンジニアのブログ

技術ブログ

ポリシーステートメントのWHERE句

渡部です。これは、(全部俺) Oracle Cloud Infrastructure Advent Calendar 2018の11日目のエントリです。

前日のエントリで、ポリシーステートメントの構文("Allow"の構文)を示しましたが、実はWHERE句に関する説明を割愛していました。

1210_iam02.png

WHERE句を使用しなくてもポリシーステートメント("Allow"文)を作成できますが、 WHERE句を使用せずにsubject / verb / resource-type / locationを使用するだけでは、操作許可の条件指定は比較的粒度の粗い制御にとどまります。 WHERE句を使用すると、subject / verb / resource-type / locationの指定に加えて、より粒度の細かい操作許可の条件指定を行なうことができるようになります。

1211_iam_pol_where01.png

WHERE句には条件を指定しますが、条件を満たす操作の実行が許可されます。 条件には変数を含めます。

1211_iam_pol_where02.png

以下に変数を用いたポリシーステートメントの例を示します。

# バケット一覧表示とBucketAの読み込み+ダウンロードを許可
Allow group ObjectReaders to read objects in compartment ABC
  where target.bucket.name='BucketA'

# バケット一覧表示とBucketAへのオブジェクトアップロードとオブジェクト一覧表示を許可
Allow group ObjectWriters to manage objects in compartment ABC
  where all { target.bucket.name='BucketA', 
              any {request.permission='OBJECT_CREATE', request.permission='OBJECT_INSPECT'}}

# Administratorsグループ以外のグループのメンバーシップを管理を許可 
Allow group GroupAdmins to use users in tenancy where target.group.name != 'Administrators'
Allow group GroupAdmins to use groups in tenancy where target.group.name != 'Administrators'

# ホーム リージョンがPhoenixのグループ メンバーだけが、IAMリソースを管理を許可
Allow group Phoenix-Admins to manage all-resources in tenancy where request.region='phx'

プロフィール

On7tWW6m1Ul4

渡部 亮太

・Oracle ACE
・AWS Certified Solutions Architect - Associate
・ORACLE MASTER Platinum Oracle Database 11g, 12c 他多数

カテゴリー

アーカイブ