« OCI IAMによる権限制御の概観 | メイン | インスタンスプリンシパル (AWS IAMロールの代替) »

ポリシーステートメントの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'

About

2018年12月11日 00:00に投稿されたエントリーのページです。

ひとつ前の投稿は「OCI IAMによる権限制御の概観」です。

次の投稿は「インスタンスプリンシパル (AWS IAMロールの代替)」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。