6.2.5. 権限記述におけるAND・OR条件

複数の実行権限の制御が適用される場合、それぞれの制御は以下のような条件となります。

AND・OR条件

図 6.2.5.1 AND・OR条件イメージ

OR 条件
a.IAMロール内のresourcesに複数の条件が記述された場合
b.ユーザーが複数のIAMグループに所属する場合
AND 条件
c.1つのIAMグループに複数のIAMロールが紐付いている場合
AND 条件 と OR 条件について、例を上げて説明をします。

注釈

画面操作で登録する場合、resourcesの記述は不要です。 ポータル操作での設定の場合は、 こちら をご確認ください。

6.2.5.1. IAMロール内のresourcesに複数の条件が記述された場合

resourcesの配列内に2つ以上の条件を記述すると OR 条件となります。
以下のような条件で作成したIAMロールは、Keystoneまたは管理機能のAPIを実行する権限をもつロールとなります。
"resources": [
    {
        "basePath" : "/ecl-keystone",
        "ipAddress" : "*",
        "path" : "*",
        "verb" : "*"
    },
    {
    "basePath" : "/ecl-sss",
        "ipAddress" : "*",
        "path" : "*",
        "verb" : "*"
    }
]

6.2.5.2. ユーザーが複数のIAMグループに所属する場合

ユーザーが複数のIAMグループに属する場合、これらのグループに対する実行権限制御の OR 条件となります。
IAMロール内のresourcesに複数の条件が記述された場合 の例であげたIAMロールを紐付けたグループと、以下のようなIAMロールを紐付けたグループにユーザーを所属させるとします。
その場合、このユーザーはKeystone、管理機能または仮想サーバーへのAPIを実行する権限をもつユーザーとなります。
"resources": [
    {
        "basePath" : "/ecl-nova",
        "ipAddress" : "*",
        "path" : "*",
        "verb" : "*"
    }
]

6.2.5.3. 1つのIAMグループに複数のIAMロールが紐付いている場合

1つのIAMグループに複数のIAMロールが紐付いている場合、それらのIAMロールは AND 条件となります。
以下のような条件のIAMロールをそれぞれ別に作成します。
これらのIAMロールを1つのIAMグループに紐付けた場合、このIAMグループに属するユーザーは管理機能のすべてのAPIかつGETのAPI、すなわち管理機能のGETのみ実行可能なユーザーとなります。
"resources": [
    {
        "basePath" : "/ecl-sss",
        "ipAddress" : "*",
        "path" : "*"
    }
]
"resources": [
    {
        "verb" : "GET"
    }
]

注釈

AND条件を設定する場合、2つのIAMロールどちらかにbasePath、ipAddress、path、verbのパラメータを定義する必要があります。