条件
ポリシーで使用できる構文条件。
1つまたは複数の条件を指定します。論理ORまたはANDを指定するには、any
またはall
を複数の条件で使用します。
単一条件の構文: variable =|!= value
複数条件の構文: any|all {<condition>,<condition>,...}
条件の一致では、大文字と小文字は区別されません。このことは、大文字と小文字を区別する名前を許可するリソース・タイプの条件を記述するときに注意する必要があります。オブジェクト・ストレージ・サービスによって、「BucketA」という名前のバケットと「bucketA」という名前のバケットの両方を同じコンパートメントに作成できるとします。「BucketA」を指定する条件を記述すると、条件一致では大文字と小文字が区別されないため、「bucketA」にも適用されます。
すべてのサービスでサポートされる変数のリストは、すべてのリクエストの一般的な変数を参照してください。また、ポリシー・リファレンスで各サービスの詳細も参照してください。条件に使用できる値のタイプは、次のとおりです。
タイプ | 例 |
---|---|
文字列 |
(値を囲む一重引用符が必要です) |
パターン |
|
例:
次の例では、条件を指定するステートメントによって、GroupAdminsが実際にすべてのユーザーとグループを一覧表示するわけではないため、
inspect
動詞を含むステートメントが完全性のために追加されます。これが必要な理由を理解するには、拒否されたリクエストのリクエスト結果に適用できない変数を参照してください。 - 単一条件。
次のポリシーでは、GroupAdminsグループが、「A-Users-」で始まる名前のグループを作成、更新または削除できます。
Allow group GroupAdmins to manage groups in tenancy where target.group.name = /A-Users-*/ Allow group GroupAdmins to inspect groups in tenancy
次のポリシーによって、GroupAdminsグループは管理者グループ以外の任意のグループのメンバーシップを管理できます。(
inspect
アクセス用に個別のステートメントを含める必要があることに注意してください。target.group.name
変数がListUsersおよびListGroups操作では使用されないためです)。Allow group GroupAdmins to inspect users in tenancy
Allow group GroupAdmins to use users in tenancy where target.group.name != 'Administrators'
Allow group GroupAdmins to inspect groups in tenancy
Allow group GroupAdmins to use groups in tenancy where target.group.name != 'Administrators'
次のポリシーにより、NetworkAdminsグループは、指定されたものを除く任意のコンパートメント内のクラウド・ネットワークを管理できます:Allow group NetworkAdmins to manage virtual-network-family in tenancy where target.compartment.id != 'ocid1.compartment.oc1..aaaaaaaayzfqeibduyox6icmdol6zyar3ugly4fmameq4h7lcdlihrvur7xq'
- 複数条件。
次のポリシーにより、GroupAdminsは、A-Adminsグループ自体を除く、名前が「A-」で始まるグループを作成、更新または削除できます。
Allow group GroupAdmins to manage groups in tenancy where all {target.group.name=/A-*/,target.group.name!='A-Admins'} Allow group GroupAdmins to inspect groups in tenancy