« OCIセキュリティリストのステートフルルールとステートレスルール | メイン | ポリシーステートメントのWHERE句 »

OCI IAMによる権限制御の概観

渡部です。これは、(全部俺) Oracle Cloud Infrastructure Advent Calendar 2018の10日目のエントリです。

データベースなどと同様に、Oracle Cloud Infrastructure(以下OCI)でも役割の異なる複数のユーザーが、同一の環境(OCIではテナント)を使用します。このため、ユーザーの権限制御が必要です。以下にOCIの権限制御の概観を示します。

1210_iam01.png

特徴は以下の通りです。

  • ポリシーで権限を付与する
    • 1つのポリシーには1つ以上のステートメント("Allow ...")が含まれる
  • 権限を付与する対象はIAMグループ
    • 1つのIAMグループには複数のIAMユーザーを含むことができる
    • IAMユーザーに直接ポリシーを適用し、権限を付与することはできない
  • 実行可能な操作の内容は、操作レベル+リソースタイプで定義する(上記例ではmanage + instances)
  • 権限付与の適用範囲はコンパートメントを用いて限定できる

IAMユーザーにポリシーを適用できないのが、AWSと異なります。これは、昨今のセキュリティのベストプラクティスをふまえたものと思われます。(Oracle Databaseにおい て、ユーザーに直接権限を付与するのではなく、ロール経由で権限を付与することが推奨されるのと同じ考え)

ポリシーステートメントの構文("Allow"の構文)を以下に示します。

1210_iam02.png

特徴は以下の通りです。

  • 許可されるアクションに対応する"動詞"が4種類に限定されている
    • いたずらにアクションの種類を増やすと、理解と設計が困難になることを危惧しての設計と思われます。
  • "in compartment <コンパート名>"で権限の有効範囲を限定できる
    • 権限の有効範囲を全コンパートメント(=テナント全体)にしたい場合は"in tenancy"を指定する

若干細かい話ですが、管理コンソールにおけるポリシーの見え方がグループと同列である点には少し注意が必要です。

AWSでは、グループに対する属性的な形でポリシーが位置づけられているような、管理コンソールの画面設計になっています。

しかし、OCIではそのようには設計されていません。すなわち、グループを選択して詳細を確認しても、そのグループに適用されたポリシーを確認することはできません。 おそらく概念モデルとしては、ポリシーがグループの配下にある以下のような形ではなく、

グループ
  └ ポリシー ──→ リソース

ポリシーがグループとリソースの仲立ちをする以下のような形でとらえるべきなのでしょう。

グループ  ── ポリシー ─→ リソース

1210_iam04.png

About

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

ひとつ前の投稿は「OCIセキュリティリストのステートフルルールとステートレスルール」です。

次の投稿は「ポリシーステートメントのWHERE句」です。

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