OCI のポリシー(権限付与)に Deny(拒否)ポリシーが書けるようになりました。本記事ではこの Denyポリシーをお試ししてみますやで。
彡(^)(^)
1. リリースノート
リリースノートはこちらです。2025年11月18日にリリースなので出たての機能です。
2. マニュアル
Denyポリシーのマニュアルは下記となります。
3. 注意事項(直感的ではない※仕様)
※直感的ではない ← あくまで個人の見解です。
マニュアルに下記の記述があります。
For example, when allowing permissions, granting access to manage permissions typically means a user is also granted permissions such as read or inspect. The manage verb always expands scope to include the use, read, and inspect permissions on a resource.
However, when denying permissions, the opposite is true. When a policy is written denying access to manage permissions, it doesn't necessarily block permissions for inspect, read, or use.
For example, if you write a deny policy to block an inspect permission, typically you would also want to restrict the read, use, or manage permissions. In other words, denying the ability to inspect a resource would also deny the ability to read, use, or manage it.
これを整理すると以下のような動作になります。
- Allow の場合 manage で許可すると権限が use, read, inspect にも拡張されて同時に許可される仕様 ← これはわかる
- Deny の場合は manage で拒否すると use, read, inspect は拒否されずに残る ← ファッ!?
- ある権限を Deny でまるっと拒否する場合は inspect で拒否する必要がある。inspect で拒否すると累積的に read, use, manage が拒否される仕様 ← マジデ^q^
これは個人的にはだいぶ違和感がある仕様ですが、文句を言ってもしょうがないのでサクサク検証します。
4. Denyポリシーのテナントでの有効化
コンソール左上のハンバーガーメニュ → Identity&Security → Domains → Defaultドメイン → Policiesペイン に移動します。
Actionsボタンから denyポリシーの有効化が可能になったとポップアップします。
Actionsボタンから Denyポリシーのトグルを有効化して保存します。
Denyポリシーを有効化するとそのポリシーが有効化された情報と、管理者は Deny が除外されるポリシーが追加されます。
5. テスト用のポリシーステートメント
以下のポリシーを作成して管理者以外のユーザーに付与します。全リソースの読取権限を付与しつつ、inspectのDenyステートメントで請求書の権限を拒否しています。
allow group default/grp-deny-test to read all-resources in tenancy
deny group default/grp-deny-test to inspect invoices in tenancy
6. 別ユーザーでログインして請求書を参照
権限を付与した別ユーザーでOCIコンソールにログインします。コンソール左上のハンバーガーメニュ → Billing&Cost Management → Invoices で請求書画面に移動します。
請求書が表示されないことを確認できました。次にポリシーステートメントを下記のように書き換えて manage で拒否してみます。
allow group default/grp-deny-test to read all-resources in tenancy
deny group default/grp-deny-test to manage invoices in tenancy
ポリシー書き換え後に別ユーザーのブラウザをリフレッシュすると……
請求書を読み取れることが確認できました。直感的※じゃない仕様!(※くどいですが個人の見解です)
彡(^)(^)
7. まとめ
Denyポリシーの動作を確認できました。manageのDenyに代表される下位の動詞が拒否されない仕様がちょっと(だいぶ)違和感ありますが、理解していれば問題はない。活用していくとしましょう。
彡(^)(^)







