6.2.5. 権限記述における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のパラメータを定義する必要があります。