Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OCI技術資料 : IDおよびアクセス管理 (IAM) 詳細

OCI技術資料 : IDおよびアクセス管理 (IAM) 詳細

Oracle Cloud Infrastructure (OCI) の技術説明資料、IDおよびアクセス管理 (IAM) の詳細編 (Level 200) です。

下記の内容について解説しています。
- インスタンス・プリンシパルと動的グループ
- 高度なIAM認証
- 高度なポリシーの記述
- フェデレーションの詳細
- コンパートメント階層とポリシーの継承
- コンパートメントの移動
- IAMの設計リファレンス

Transcript

  1. IDおよびアクセス管理 詳細 Identity and Access Management Level 200 Oracle Cloud

    Infrastructure 技術資料 2021年1月
  2. Safe harbor statement 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、 情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以 下の事項は、マテリアルやコード、機能を提供することを確約するものではないため、購買 決定を行う際の判断材料になさらないで下さい。 オラクル製品に関して記載されている機能の開発、リリース、時期及び価格については、弊 社の裁量により決定され、変更される可能性があります。 Copyright

    © 2021 Oracle and/or its affiliates. 2
  3. はじめに Copyright © 2021 Oracle and/or its affiliates. 3 この資料は、Oracle

    Cloud Infrastructure (以下OCI) におけるIdentity and Access Management (以下IAM) の説明資料です。 内容は予告なく変更される可能性があるため、最新の情報や詳細については、下記のサイトをご覧ください。 • OCIトレーニング • https : //cloud.oracle.com/iaas/training • OCIドキュメント • https : //docs.cloud.oracle.com/iaas/Content/home.htm
  4. OCI IAMトレーニングの全体像 Copyright © 2021 Oracle and/or its affiliates. 4

    概要 (Level 100) • プリンシパルと認証 • 認可とポリシー • コンパートメント • フェデレーション • タグ付け 詳細 (Level 200) • インスタンス・プリンシパルとダイナミック・グループ • 高度なIAM認証 • 高度なポリシーの記述 • フェデレーションの詳細 • コンパートメント階層とポリシーの継承 • コンパートメントの移動 • IAMの設計リファレンス
  5. Copyright © 2021 Oracle and/or its affiliates. 5 インスタンス・プリンシパルと動的グループ Instance

    Principals and Dynamic Groups
  6. OCIにおける「プリンシパル」とは? • OCIのリソースと関連付けることができるIAMのエンティティ • IAMユーザー と インスタンス・プリンシパル の2種類 (A) IAMユーザー

    (IAM Users) • OCIを利用する個人やアプリケーションを表す永続的なエンティティ • グループへの所属を通じてリソースへのアクセス権が付与される (B) インスタンス・プリンシパル (Instance Principals)* • インスタンスとその上のアプリケーション) が、ユーザ証明書や設定ファイル を設定する必要なく、OCIサービスへのAPIコールを許可するための設定 プリンシパル (Principals) Copyright © 2021 Oracle and/or its affiliates. 6 アクセス対象の OCIリソース IAM ユーザー インスタンス・ プリンシパル 認証 & 認可 グループ
  7. インスタンス・プリンシパル を使用すると、ユーザーや資格証明(API署名鍵など)をインスタンスに配置しなくてもインスタ ンスで動くアプリケーションからAPIをコールできるようになる インスタンス・プリンシパルがない場合… • APIキーをすべてのインスタンスに格納する必要がある • APIキーのローテーションの際にインスタンスの鍵も変更する必要がある • (通常はAPIキーは共通にするため)インスタンスレベルのアクセス監査ができない

    インスタンス・プリンシパルを使用すると… • インスタンスに対して独自のアクセス許可を付与(新しいプリンシパルとして追加)するため不要なAPIキーを発行する 必要がない • ある基準を満たすインスタンスを動的にグループ化して権限を付与できる(動的グループ) • 監査ログにAPIをコールしたインスタンスのIDが格納されるため、インスタンス単位で監査ができる インスタンス・プリンシパル (Instance Principals) 概要 Copyright © 2021 Oracle and/or its affiliates. 7
  8. 認証、認可はインスタンスレベルで行われる • ユーザは証明書管理をする必要なし ポリシーは 動的グループ を使用して付与される • 動的グループを使用すると、ユーザーが所属する通常のグループと同様に インスタンスをグループ化できる •

    ポリシーは動的グループレベルで設定されます • 動的グループは、一致ルールと呼ばれる一連の基準によって決定され、 ルールに適合するリソースが動的グループのメンバーになる ポリシーの記述例 Allow dynamic-group <group-name> to manage XXX in tenancy インスタンス・プリンシパルを使用した認証 Copyright © 2021 Oracle and/or its affiliates. 8 アクセス対象の OCIリソース IAM ユーザー インスタンス・ プリンシパル 認証 & 認可 グループ 動的グループ
  9. ステップ1 - 動的グループ (Dynamic Group) の作成 マッチング・ルールに一致するインスタンスが動的グループに追加されるよう設定 • ルールに条件として使用できるパラメーター :

    • コンパートメントOCID • インスタンスOCID • タグ名前空間とタグ・キーの組み合わせ • タグ・名前空間とタグ・キーとタグ値の組み合わせ • 特定のインスタンスが動的グループから除外するように設定することも可能 インスタンス・プリンシパルの利用手順 Copyright © 2021 Oracle and/or its affiliates. 9 この例では特定のコンパートメントの中のすべてのインスタンスが この動的グループに自動的に所属する
  10. ステップ2 - 動的グループに対するポリシーを作成 インスタンス・プリンシパルの利用手順 Copyright © 2021 Oracle and/or its

    affiliates. 10 この例では先ほど作成した FrontEnd という動的グループ (に所属するインスタンス) に対し、バケットとオブジェクトの管理 権限を付与している
  11. ステップ3 – インスタンスにコードをデプロイ インスタンス・プリンシパルの利用手順 Copyright © 2021 Oracle and/or its

    affiliates. 11 [opc@webserver1 .oci]$ oci os ns get ERROR: The config file at ~/.oci/config is invalid: +Config Errors-------+--------------------------------------------------------+ | Key | Error | Hint | +----------+---------+--------------------------------------------------------+ | key_file | missing | the full path and filename of the private PEM key file | +----------+---------+--------------------------------------------------------+ [opc@webserver1 .oci]$ cat config [DEFAULT] user=ocid1.user.oc1..aaaaaaaag3635pdkcopjvcvljf7kmo7besxqzeqiry2wzawa4zqk2xkx4z7q fingerprint=93:4f:c0:c3:26:3b:06:9f:c8:17:60:78:23:e1:1c:90 # key_file=/home/opc/.oci/oci_api_key.pem API署名鍵をコメントアウト tenancy=ocid1.tenancy.oc1..aaaaaaaaxy6bh46cdnlfpaibasc6dotowv32hc2sbj4ph3ocxtfxhhva2hna region=us-ashburn-1 [opc@webserver1 .oci]$ oci os ns get --auth instance_principal { "data": "intoraclerohit" } 上記はOCI CLI の例だが、他にSDK(Java, Python, Goなど)やAPIを直接コールするプログラムからもインスタンス・プリンシパル を利用可能  通常のアクセスでは認証エラー  認証にインスタンス・プリンシパルを使用するようにするとAPI コールに成功
  12. バックグラウンドでの動作メカニズム(1/2) インスタンス・プリンシパル Copyright © 2021 Oracle and/or its affiliates. 12

    OCIメタデータ・サービス各インスタンスに発行する X.509 PKI 証明書を使って認証 • 証明書はOCI内部の認証局(CA)によってサイン • 証明書にはインスタンスの固有情報(インスタンスID、コンパートメントID等)を含む OCI SDK/CLI がインスタンス・プリンシパルを用いてアクセスする際の動作 1. SDK/CLI がインスタンス・メタデータ・サービス(http://169.254.169.254/opc/v1/identity/cert.pem)を コールして X.509 証明書を取得 2. SDK/CLI は取得した証明書を用いて OCI の認証サービスをコール 3. OCI の認証サービスは提示された証明書の発行元をチェックしてトークンを発行 4. SDK/CLI は取得したトークンを用いて OCI の API をコール 5. コール時にはインスタンスに紐付けられたポリシーに一致する認可が付与
  13. バックグラウンドでの動作メカニズム(2/2) インスタンス・プリンシパル Copyright © 2021 Oracle and/or its affiliates. 13

    OCIネットワークのPKIエージェントが定期的にPKI証明書をリフレッシュし、そのたびにSDK/CLIは証明書を 再取得し再度認証サービスからトークンを取得 X.509 証明書は curl コマンドなどで確認できる http://169.254.169.254/opc/v1/identity/cert.pem [opc@webserver1 .oci]$ curl http://169.254.169.254/opc/v1/identity/cert.pem -----BEGIN CERTIFICATE----- MIIIPjCCBiagAwIBAgIQesV+WyeYgLqUxb4vSgrL/jANBgkqhkiG9w0BAQsFADCB qTFzMHEGA1UECxNqb3BjLWRldmljZTo1NDo1Yjo4NTpiOTowMjo5Yjo4YTo4MDpl YTo1MjoxNzo1MjozYjo1ZjowZjpmMzo1MTpkNjo1YzoxZjpmYTozYTo1MTo4OTow ZDpjMTowNTo0MjphOTowYzplMTo4YjEyMDAGA1UEAxMpUEtJU1ZDIElkZW50aXR5 IEludGVybWVkaWF0ZSB1cy1hc2hidXJuLTEwHhcNMTgwNjE1MTc0MjU1WhcNMTgw NjE1MTg0MjU1WjCCAbQxggFSMBwGA1UECxMVb3BjLWNlcnR0eXBlOmluc3RhbmNl MGcGA1UECxNgb3BjLWluc3RhbmNlOm9jaWQxLmluc3RhbmNlLm9jMS5pYWQuYWJ1 d2NsanRrYWMyMjZzbDY1N3hsbHIzNWszaGozYWJra3I3dm9sd3BndWd6c3Nkdjd2
  14. Copyright © 2021 Oracle and/or its affiliates. 15 高度なIAM認証 Advanced

    authentication
  15. IAMサービスは下記いずれかの 資格証明(Credentials) でプリンシパルを 認証 する 認証 (Authentication) Copyright © 2021

    Oracle and/or its affiliates. 16 API署名鍵 認証トークン ユーザ名、パスワード • Webコンソールへのログインに使用 APIキー (API Signing Key) • OCIネイティブのAPI、SDK、CLIを使用する場合に使用 • PEM形式のRSA鍵ペア (最低2048ビット) 認証トークン (Auth Token) • Swift互換APIなどトークンで認証するタイプのAPIで使用 顧客秘密キー (Customer Secret Keys) • S3互換APIなど、通常のAPIキーとは異なる鍵を利用するAPI で使用 • 旧称 : Amazon S3互換APIキー
  16. 多要素認証 (MFA) とは Copyright © 2021 Oracle and/or its affiliates.

    17 多要素認証(MFA)は、ユーザーのIDを確認するために複数の要素を使用する必要がある認証方法 例えば、パスワード (What You Know) の他に、デバイス(What You Have) を認証要素として利用するような ケース
  17. OCI IAM での 多要素認証の有効化方法 Copyright © 2021 Oracle and/or its

    affiliates. 18 Step 1 Step 2 Step 3
  18. ネットワーク・ソースを用いたアクセス元IPアドレスの制限 Copyright © 2021 Oracle and/or its affiliates. 19 ネットワーク・ソース

    (アイデンティティ -> ネットワーク・ソース) を設定す ることにより、コンソールへのサインインを特定のIPアドレス帯に制 限することが可能 1. ネットワーク・ソースの作成 • 仮想クラウド・ネットワークまたはパブリック・ネットワークを選択し、 アクセス元となるIPアドレス/CIDRブロックを指定 • 「OCIサービスの許可」にチェックを入れることで、上記で指定した ネットワークに含まれていない場合でも、OCIのサービスがユーザ に代わってリソースに対するアクセスが実行可能になる 2. 認証設定の編集 • 認証設定 (アイデンティティ -> 認証設定) から認証設定を編集 • ネットワーク・ソースの選択で1で作成したネットワーク・ソースを 選択して保存することで有効になる ※設定ミスなどによりアクセスできなくなることを回避するため、事前に CLIの実行環境を準備しておくことを強く推奨します。
  19. CLIでのトークンベースの認証 Copyright © 2021 Oracle and/or its affiliates. 20 •

    CLIの認証では、APIキーを利用する他に、トークンベースの認証 を利用可能 • 認証プロセスにはAPIキー (SSHキー・ペア) ではなく、Webブラウ ザが必要となる ※ブラウザがないCLI環境では、ブラウザがあるコンピュータからセッションを エクスポートしてくる必要がある • トークンベースの認証を使用することで、SCIM対応ではないアイデ ンティティ・プロバイダを使用しているユーザーもCLIやSDKを使用 することが可能になる • トークンTTLは1時間に設定され、リフレッシュコマンドの実行により 最長24時間まで設定可能 oci session refresh --profile <profile_name> 例: oci session refresh --profile default oci session authenticate (1) CLIセッション開始コマンドを実行 (2) 起動したブラウザで認証情報を入力 (3) CLIセッションが開始 認証情報は .config ファイルに保存される
  20. Copyright © 2021 Oracle and/or its affiliates. 21 高度なポリシーの記述 Advanced

    Policies
  21. ポリシー(Policies)のシンタックス その1 Copyright © 2021 Oracle and/or its affiliates. 22

    Allow <subject> to <verb> <resource-type> in <location> [where <condition>] シンタックス 説明 例文 group <グループ名> グループを名称で指定 group A-Admin group id <グループの OCID> グループをOCIDで指定 group id ocid1.group.oc1..aaaaaaaaqjihfhvx mum...awuc7i5xwe6s7qmnsbc6a any-user すべてのユーザーを指定 any-user https://docs.oracle.com/ja-jp/iaas/Content/Identity/Concepts/policysyntax.htm
  22. ポリシー(Policies)のシンタックス その2 Copyright © 2021 Oracle and/or its affiliates. 23

    Allow <subject> to <verb> <resource-type> in <location> [where <condition>] Verb (動詞) アクセスのタイプ 対象者 Inspect (検査) ユーザー指定のメタデータ以外の読み取り 専用アクセス 外部監査人 Read (参照) 読み取り専用アクセスとユーザー指定のメ タデータを取得する 内部監査人 Use (利用) 読み取りと既存のリソースを処理する機能 (アクションはリソースタイプによって異るが 通常作成や削除は不可) 日常のユー ザー Manage (管理) リソースのすべてのアクセス許可が含まれま す 管理者 集合リソースタイプ 個別リソースタイプ all-resources database-family db-systems, db-nodes, db-homes, databases instance-family instances, instance-images, volume- attachments, console-histories object-family buckets, objects virtual-network- family vcn, subnet, route-table, more volume-family Volumes, volume-attachments, volume-backups https://docs.oracle.com/ja-jp/iaas/Content/Identity/Concepts/policysyntax.htm
  23. ポリシー(Policies)のシンタックス その3 Copyright © 2021 Oracle and/or its affiliates. 24

    Allow <subject> to <verb> <resource-type> in <location> [where <condition>] シンタックス 説明 例文 tenancy テナンシ全体を指定 in tenancy compartment <コンパートメント名> コンパートメントを名称で指定 in compartment Project-A Compartment id <コンパートメントの OCID> コンパートメントのOCIDを指定 in compartment id ocid1.compartment.oc1..aaaaaaaayzfq...4f mameqh7lcdlihrvur7xq https://docs.oracle.com/ja-jp/iaas/Content/Identity/Concepts/policysyntax.htm
  24. ポリシー(Policies)のシンタックス その4 Copyright © 2021 Oracle and/or its affiliates. 25

    Allow <subject> to <verb> <resource-type> in <location> [where <condition>] シンタックス 説明 例文 <変数> = <値> 一致条件 where target.group.name = /A-Users-*/ <変数> != <値> 不一致条件 Where target.group.name != ‘Administrators’ all {<condition>, <condition>, …} すべての条件を満たす(AND条件) where all {target.group.name=/A- */,target.group.name!='A-Admins'} any {<condition>, <condition>, …} 一部の条件を満たす(OR条件) where any {target.group.name=/A- Admins/,target.group.name=‘A-Users'} Verb と resource-type の取りうる組み合わせのパターンの詳細については以下を参照 https://docs.oracle.com/ja-jp/iaas/Content/Identity/Reference/policyreference.htm
  25. ポリシー(Policies)のシンタックス その4 (続き) Copyright © 2021 Oracle and/or its affiliates.

    26 Allow <subject> to <verb> <resource-type> in <location> [where <condition>] 2つのリクエストのタイプ • request: リクエスト自体に関連 • target: requestで処理されているリソースに関連 変数名はrequestまたはtargetの後のピリオドに詳細が 続く Conditionsを使用したポリシーの例 • Allow group Phoenix-Admins to manage all-resources in tenancy where request.region='phx' 主な変数 説明 request.operation 要求されているAPI操作名 request.permission 要求されているパーミッション request.user.id 要求したユーザのOCID request.groups.id 要求したユーザが所属するグループID target.compartment.id コンパートメントのID target.compartment.na me target.compartment.idで指定さ れたコンパートメント request.region リクエストが作成されたリージョンのキー (phx、iadなど) request.ad リクエストが作成された可用性ドメイン の名前
  26. ポリシーを 動詞(Verb) を使って記述すると、内部的に は事前定義された パーミッション(Permissions) の 集合体として定義される • パーミッションは、リソースに対する操作権限として 定義されている原子単位

    • Inspect < Read < Use < Manage とアクセス レベルが上がるにつれて、パーミッションが累積されて いく • 全てのAPI操作に対して対応する必要なパーミッショ ンが定義されている ‐ 例 : ListVolumes や GetVolumes をコールする には、VOLUME_INSPECTパーミッションが必要 動詞 (Verbs) とパーミッション (Permissions) Copyright © 2021 Oracle and/or its affiliates. 27 動詞 (Verb) パーミッション (Permssions) API操作 volume- family Inspect Volume- Inspect Volume- Inspect Read + Read Use Manage Volume- Update Volume- Write Use + Volume- Create Volume- Delete ListVolumes GetVolumes CreateVolume DeleteVolume リソース・ タイプ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・
  27. パーミッションやAPI操作を使用してアクセス制御をする方法 Copyright © 2021 Oracle and/or its affiliates. 28 通常ポリシーを作成する時はパーミッションやAPI操作は内部的に指定されるためユーザは使用しないが、条件句で明

    示的に指定して操作を制限することが可能 設定例 : ユーザにVCN削除以外のVCN管理権限を与えたい場合 • allow group TrainingGroup to manage virtual-network-family in compartment training where request.permission != 'VCN_DELETE'
  28. ユースケース別のポリシー記述サンプル Copyright © 2021 Oracle and/or its affiliates. 29 ユースケース

    例文 ネットワーク管理者にクラウドネットワーク管理権 限を付与 • Allow group NetworkAdmins to manage virtual-network-family in tenancy ユーザーにインスタンスの作成権限を付与 • Allow group InstanceLaunchers to manage instance-family in compartment ABC • Allow group InstanceLaunchers to use volume-family in compartment ABC • Allow group InstanceLaunchers to use virtual-network-family in compartment XYZ バックアップ管理者にボリュームのバックアップを管 理できる権限のみを付与 • Allow group VolumeBackupAdmins to use volumes in tenancy • Allow group VolumeBackupAdmins to manage volume-backups in tenancy • Allow group VolumeBackupAdmins to inspect volume-attachments in tenancy • Allow group VolumeBackupAdmins to inspect instances in tenancy ユーザーにオブジェクト・ストレージ・バケットにオブ ジェクトの書込権限を付与 • Allow group ObjectWriters to read buckets in compartment ABC • Allow group ObjectWriters to manage objects in compartment ABC where any {request.permission='OBJECT_CREATE', request.permission='OBJECT_INSPECT'} コンパートメント管理者にコンパートメントの管理 権限を付与 • Allow group A-Admins to manage all-resources in compartment Project-A 管理者に特定リージョンのアクセス権を付与 • Allow group Phoenix-Admins to manage all-resources in tenancy where request.region='phx' 監査人にリソースの監査権限を付与 • Allow group Auditors to inspect all-resources in tenancy • Allow group Auditors to read instances in tenancy • Allow group Auditors to read audit-events in tenancy 他にも多数の記述例はこちら : https://docs.oracle.com/ja-jp/iaas/Content/Identity/Concepts/policysyntax.htm https://docs.oracle.com/ja-jp/iaas/Content/Identity/Concepts/commonpolicies.htm
  29. Copyright © 2021 Oracle and/or its affiliates. 30 フェデレーションの詳細 Identity

    Federation
  30. OCIの認証・ID管理機能の位置付け Copyright © 2021 Oracle and/or its affiliates. 31 OCIを使用するにあたって、主に使用する認証およびID管理サービスは下記の2つ

    A) Oracle Identity Cloud Service • Oracle Cloudの全てのサービスで使用される統合的な認証・ID管理サービス B) OCI Identity and Access Management (IAM) • Oracle Cloud Infrastructure 単独の環境でネイティブに使用される認証・ID管理サービス ここでは「A) Oracle Identity Cloud Service」について説明 Oracle Identity Cloud Service OCI Identity and Access Management Oracle PaaS サービス群 Oracle SaaS サービス群
  31. IDCS機能を利用して、IPアドレスによるWhitelisting、Backlistingでのアクセス制御の利用が可能 IDCSを使ったOCI認証の強化 – IPホワイトリスティング Copyright © 2021 Oracle and/or its

    affiliates. 32 <ネットワーク境界 (Network Perimeter)> 10.11.12.18/24 <サインオン・ポリシー> 条件: 1. 認証に利用されているIDプロバイダ 2. 所属グループ 3. ネットワーク境界 アクション: Allow/Deny <グループ> OCI_Administrator <ユーザ> Sato Suzuki サインオン・ポリシーにネットワーク境界を設定し、アクションとして Alow/Denyを設定する事により、IDCSのアカウントを利用して サインオンするユーザに対して、IP ホワイトリスティング、IP ブラックリスティング の機能を提供 <留意事項> • ネットワーク境界の機能は、IDCSの機能であり、OCI側で作成したユーザでは利用できません • 他要素認証など、利用する機能によっては、別途IDCSのサービスを購入する必要があります
  32. IDCSを使ったOCI認証の強化 – IPホワイトリスティング Copyright © 2021 Oracle and/or its affiliates.

    33 アプリケーション単位で次の属性で アクセスの許可や拒否、再認証や二 要素認証の要求をポリシーとして指定 • 使用したIdP • ユーザー名 • 所属グループ • IPアドレス 「サインオン・ポリシー」でアクセスを許可/拒否す るルールを複数設定して、順番に実行 イントラネットからの アクセスはID/PWのみ許可 インターネットからのアクセスには二要 素認証や再認証を要求 イントラネットのIPの範囲指定
  33. IDCSを使ったOCI認証の強化 – 多要素認証 Copyright © 2021 Oracle and/or its affiliates.

    34 アプリケーションでの 通知への応答 SMSによる ワンタイムパスワード アプリケーションでの ワンタイムパスワード 秘密の質問 メールによる ワンタイムパスワード パスワード ID ログイン 二要素認証 IDとパスワード によるログイン インターネット 社内 ネットワーク クラウド・サービス IPホワイト・リストによる二要素認証のスキップ OCIコンソール
  34. • 管理画面で有効化すれば設定が完了 • モバイル・アプリケーションの設定は、ユーザーがQRコードを読み込むだけ IDCSを使ったOCI認証の強化 – 多要素認証 Copyright © 2021

    Oracle and/or its affiliates. 35 利用する方式を 選択 同じブラウザであれば、 一定期間第2認証を スキップ
  35. Copyright © 2021 Oracle and/or its affiliates. 36 コンパートメント階層とポリシーの継承 Policy

    Inheritance and Attachment for Compartments
  36. コンパートメントによる階層型のアクセス権管理 Copyright © 2021 Oracle and/or its affiliates. 37 Oracle

    Cloud Infrastructure リージョン - Phoenix リージョン - Ashburn テナンシ (Tenancy) = ルート・コンパートメント (Root Compartment) コンパートメントA • 最上位(root)のコンパートメント = テナンシ (tenancy) • コンパートメントは階層化できる(最大6層) • 上位コンパートメントに与えられたアクセス権 限は下位コンパートメントに継承される コンパートメントB インスタンスA インスタンスB インスタンスC インスタンスD コンパートメントC インスタンスI インスタンスJ インスタンスK インスタンスL インスタンスE インスタンスF インスタンスG インスタンスH
  37. コンパートメントは、親コンパートメントから子コンパートメント、孫コンパートメントへと階層構 造に従ってポリシーを継承する 例1 : デフォルトから存在する以下の管理者ポリシーはルート・コンパートメントに存在するた め、継承により管理者グループはテナント内の全てのコンパートメントの管理権限を持つ • Allow group Administrators

    to manage all-resources in tenancy 例2 : 以下のポリシーがコンパートメントAにある場合、NetworkAdminグループのメンバー は、継承によりコンパートメントCのVCNの管理権限も持つ • Allow group NewtworkAdmins to manage virtual-network-family in compartment B ポリシーの継承 Copyright © 2021 Oracle and/or its affiliates. 38 Tenancy (root compartment) A B C
  38. ポリシーを作成する際には、必ずどこかのコンパートメント(またはルート・コンパートメント)に 作成する必要がある ポリシーが存在する場所(コンパートメント)により、誰がそれを変更/削除できるかが決まって くる(制御できる) • コンパートメントBに存在するポリシーは、コンパートメントBの管理者(や、その上位のコン パートメントAやテナンシーの管理者)が変更できる • つまり、コンパートメントBの管理権限を付与する場合は、コンパートメントBに作成する のではなく、より上位のコンパートメントであるAまたはテナンシーにポリシーを作成するの

    が望ましい • Allow group B-admin to manage all-resources in compartment B ポリシーの存在場所 Copyright © 2021 Oracle and/or its affiliates. 39 Tenancy (root compartment) A B C
  39. Copyright © 2021 Oracle and/or its affiliates. 40 コンパートメントの移動 Moving

    Compartments
  40. コンパートメント移動の2つの方法 Copyright © 2021 Oracle and/or its affiliates. 41 2.

    リソースをコンパートメントごと別階層に移動 • コンパートメントを指定して一括で移動 • 以下の場合は移動不可 • 移動先に同じ名称のコンパートメントがある • 移動先の親コンパートメントが同じ名前 テナンシー (Root Compartment) A B C C 1. リソースを個別に別コンパートメントに移動 • リソース単位で個別に指定してコンパートメントを移 動する方法 • ほとんどのリソースが対応している(全部ではない)
  41. ポリシーが移動前と移動後に共通となる親コンパートメント(またはそれ以上の階層)に存在し、かつそのポリシーが移動 対象のコンパートメントを直接指定している場合は、コンパートメント移動時にポリシーが自動的に更新される コンパートメント移動時のポリシーの動き Copyright © 2021 Oracle and/or its affiliates.

    42 Tenancy (root compartment) Ops Test Dev A Tenancy (root compartment) Ops Test Dev A A Allow group G1 to manage instance-family in compartment Test:A Allow group G1 to manage instance-family in compartment Test:A Dev:A ポリシーが自動で更新されるた め、G1グループのメンバーは引 き続きAコンパートメントにアク セス可能 コンパートメントAをTest配下 からDev配下に移動 G1 G1 G1
  42. ポリシーが移動対象のコンパートメントを直接指定せず、上の階層を指定している場合は、コンパートメント移動時に ポリシーは更新されないため、移動後の階層構造の影響を受けてアクセス権が変わる コンパートメント移動時のポリシーの動き(続き) Copyright © 2021 Oracle and/or its affiliates.

    43 Tenancy (root compartment) Ops Test Dev A Tenancy (root compartment) Ops Test Dev A A Allow group G1 to manage instance-family in compartment Test Allow group G1 to manage instance-family in compartment Test ポリシーは自動で更新されない ため、G1グループのメンバーは Aコンパートメントにアクセスでき なくなる コンパートメントAをTest配下 からDev配下に移動 G1 G1
  43. Copyright © 2021 Oracle and/or its affiliates. 44 IAMの設計リファレンス Reference

    IAM model for Enterprises
  44. 人による全てのアクセスは、実績のある認証メカニズムと管理機能(パスワードの複雑さ/ローテーション等)を活用する ために、顧客の企業アイデンティティプロバイダ(IdP)との連携を介して行う 認証とユーザ管理の設計 Copyright © 2021 Oracle and/or its affiliates.

    45 ユースケース 利用する機能 人によるアクセス(コンソール利用) 企業IdPとOCI IAM間でSAML2.0 フェデレーション 人によるアクセス(CLI/SDK利用) APIキーを使用してOCI IAMユーザを作成 人によるアクセス(PaaS/SaaSアプリケーション経由) 企業IdPとOCI IAM間でSAML2.0 フェデレーション OCIインスタンス上で動作するアプリケーション インスタンス・プリンシパル OCI外で動作するアプリケーション APIキーを使用してOCI IAM「ユーザ」を作成 *この場合「ユーザ」は人ではなくソフトウェア・エージェント フェデレーションが失敗した際の人間によるアクセス フェデレーションの『Break-glass』シナリオを設定 (このケース以外でOCI IAMユーザがコンソールパスワードを使用すること はないようにする)
  45. • 各リソースは単一のコンパートメントに属するが、コンパートメントをまたいで接続・共有することは可能 ‐ 例:VCNとそのサブネットは異なるコンパートメントに存在可能 • コンパートメントは作成・名前変更後に削除可能 • 最大6階層までのサブ・コンパートメントを持つことが可能 ‐ 子コンパートメントは上位のコンパートメントのパーミッションを引き継ぐ

    • コンパートメント作成後に最低1つのポリシーを書かないと、コンパートメント内のリソースにアクセスできない(管理者 やテナンシー全体にパーミッションのあるユーザは除く) コンパートメントの設計 Copyright © 2021 Oracle and/or its affiliates. 46
  46. コンパートメントの設計例 Copyright © 2021 Oracle and/or its affiliates. 47 コンパートメント:

    NetworkInfra • ネットワーク管理者が一元的に管理する重要なネットワークインフラストラク チャ • リソース: トップレベルの VCN、セキュリティリスト、インターネットゲートウェイ、 DRG コンパートメント: Dev、Test、Prod Networks • ネットワークを使用できるユーザーに関するポリシーを簡単に記述するため の別のコンパートメントとしてモデル化 • リソース: サブネット、データベース、ストレージ (共有している場合) コンパートメント: Project • 特定のチームまたはプロジェクトで使用されているリソース。分散管理の目 的で分離 • リソース: コンピューティングインスタンス、データベース、ブロックボリュームなど • 独自の DevOps 環境を必要とするチームごとに1つコンパートメントを作 成 1 2 3 1 2 3
  47. グループとポリシーの設定 Copyright © 2021 Oracle and/or its affiliates. 48 テナンシ

    グループ NetworkAdmins (Tanaka) ProjectAコンパートメント • Allow group NetworkAdmins to MANAGE virtual- netwoQrk-family in compartment NetworkInfra • Allow group NetworkAdmins to manage instance- family in compartment NetworkInfra • Allow group A-Admins to USE virtual-network- family in compartment NetworkInfra • Allow group A-Admins to manage all-resources in compartment ProjectA • NetworkAdminsグループのTanakaさんがNetworkInfraコ ンパートメントにネットワークを作成 • A-AdminsグループのSatoさんは、NetworkInfraコ ンパートメント内のVCNを使用してProjectAコンパー トメントにインスタンスを起動 グループ A-Admins (Sato) NetworkInfraコンパートメント Satoさんが起動したインスタンスはネットワーク観点からはVCNに存在するが、アクセスの観点からはVCNが存在する NetworkInfraコンパートメントではなくProjectAコンパートメントにある
  48. コンパートメント単位での管理者を任命する場合 テナンシ管理者の役割 • ユーザーの作成 • グループの作成(コンパートメントの管理者グループ、 コンパートメントのユーザーグループ) • コンパートメント管理者の任命 •

    コンパートメントの作成 • テナンシレベルのポリシーの設定 • Allow group com-A-admins to use users in tenancy • Allow group comp-A-admins to manage groups in tenancy where target.group.name='comp-A- users' • Allow group comp-A-admins to manage policies where target.compartment.name = 'comp-A' コンパートメント管理者の役割 • 管理下のコンパートメントの利用ユーザーのアサイン • コンパートメントの中のポリシーの設定 • 例えば特定のリソースのみが扱えるユーザーの設定など • Allow group comp-A-users to use all-resources in compartment comp-A ポリシーの設定例 Copyright © 2021 Oracle and/or its affiliates. 49
  49. Copyright © 2021 Oracle and/or its affiliates. 50 参考情報 Reference

  50. 日本語マニュアル – IAM • https://docs.oracle.com/ja-jp/iaas/Content/Identity/Concepts/overview.htm IAMリソースのサービス制限値 • https://docs.oracle.com/en-us/iaas/Content/General/Concepts/servicelimits.htm Best Practices

    for Identity and Access Management (IAM) in Oracle Cloud Infrastructure • https://cloud.oracle.com/iaas/whitepapers/best-practices-for-iam-on-oci.pdf IAM 関連の技術情報 Copyright © 2021 Oracle and/or its affiliates. 51
  51. Oracle Cloud Infrastructure マニュアル (日本語 / 英語) • https://docs.cloud.oracle.com/iaas/api/ -

    APIリファレンス • https://docs.cloud.oracle.com/ja-jp/iaas/Content/General/Reference/aqswhitepapers.htm - テクニカ ル・ホワイト・ペーパー • https://docs.cloud.oracle.com/iaas/releasenotes/ - リリースノート • https://docs.cloud.oracle.com/ja-jp/iaas/Content/knownissues.htm - 既知の問題(Known Issues) • https://docs.cloud.oracle.com/ja-jp/iaas/Content/General/Reference/graphicsfordiagrams.htm - OCIアイコン・ダイアグラム集(PPT、SVG、Visio用) ※ 日本語版は翻訳のタイムラグのため情報が古い場合があります。最新情報は英語版をご確認ください Oracle Cloud Infrastructure マニュアル・ドキュメント Copyright © 2021 Oracle and/or its affiliates. 52
  52. Oracle Cloud Infrastructure 活用資料集 • https://oracle-japan.github.io/ocidocs/ チュートリアル - Oracle Cloud

    Infrastructureを使ってみよう • https://oracle-japan.github.io/ocitutorials/ Oracle Cloud ウェビナーシリーズ • https://www.oracle.com/goto/ocws-jp Oracle 主催 セミナー、ハンズオン・ワークショップ • https://www.oracle.com/search/events/_/N-2bu/ Oracle Cloud Infrastructure – General Forum (英語) • https://cloudcustomerconnect.oracle.com/resources/9c8fa8f96f/summary Oracle Cloud Infrastructure トレーニング・技術フォーラム Copyright © 2021 Oracle and/or its affiliates. 53
  53. Thank you [Date] Copyright © 2021 Oracle and/or its affiliates.

    54
  54. None