Oracle Cloud 最初にしておくオススメ設定サマリ

はじめてQiitaに記事を書きます。Oracle Cloud (OCI) を**ゆるゆる**にご紹介ができればと思います。
直接お客様とお話しする中で色々なクラウドサービスを利用されている強者がOCIに興味を持っていただき、使い始めるときに質問いただくことを中心にQiita記事化をしていきたいと思います。

今回は**「OCIを使い始めるときに最初にどんな設定をすればいいの？」**のサマリです。
某社様のセミナーを見ていたお客様が「OCIならどうなの？」と質問をいただいたことがきっかけでQiita記事化に至りました。

この記事のレベル ： AWS/GCP/Azure などクラウドサービスを触っているひと

---

Oracle Cloudのはじめ方は、**[日本オラクル公式のオンボードセッションの資料・動画](https://community.oracle.com/docs/DOC-1028379 "Oracle Cloud Platform：ご利用ガイド（使い始めていただく方へ）/Onboarding Session")**をご確認いただくことをオススメします。
公式ドキュメント：[https://docs.oracle.com/cd/E83857_01/get-started/subscriptions-cloud/](https://docs.oracle.com/cd/E83857_01/get-started/subscriptions-cloud/index.html)

#Agenda
 * (1)初期アカウントの権限コントロール
 * (2)多要素認証(MFA)
 * (3)監査サービス・ログの有効化
 * (4)Budget(予算)と課金アラートの設定

この順番どこかで見たことある人なら、スイスイ分かります。


#(1)初期アカウントの権限コントロール
ベストプラクティス的なドキュメントは [マニュアル(セキュリティのベストプラクティス -> IAMの保護) ](https://docs.cloud.oracle.com/ja-jp/iaas/Content/Security/Reference/iam_security.htm)に詳しく書かれてます。関係ある部分抜粋します。AWSと同様でIAMの考え方は同じですが、コンパートメントというリソースを論理的にまとめる/分離する考えも持ちます。

###IAMの概念と説明

|概念|説明|
|:---|:---|
|コンパートメント|リソースを論理グループにまとめる。分離も提供します。| |
|テナンシ|OCIは、組織によって作成されたアカウントについて自動的にテナンシを作成します。これは、組織のリソースをすべて含むルート・コンパートメントです。|
|ユーザーおよびグループ|リソースのグループに対して同様のアクセス権を必要とするユーザーの集まりです。|
|リソース|OCIサービスに作成されるオブジェクトです。
|セキュリティ・ポリシー|特定の集計レベルのリソースに対してIAMグループが保持するアクセスのタイプを指定します。|



###初期ユーザー（契約アカウント）の役割
OCIでは初期ユーザー(契約アカウント)は代表者のメールアドレスが設定されています。個人利用であればOCIの申し込みに使用したアドレスになります。企業で営業・パートナー様を介して[クレジットを購入する方式](https://docs.oracle.com/cd/E83857_01/get-started/subscriptions-cloud/csgsg/universal-credits.html "Universal Credit Monthly Flex など")では、Order Document に記載されている管理者 = 初期ユーザー(契約アカウント)となります。

どのクラウドサービスでも初期ユーザーは絶大な権限があり、その管理に細心の注意を払っているかと思います。
OCIでもテナントの内部で同様で様々なユーザーの設定・利用金額の確認・サービスリクエストできたりする 島の代表なんだなも!! メンテナンスのお知らせなども初期ユーザー（＝テナント管理者）でしかお知らせが来ませんでした。これは改善されています。
最初のOCIユーザー(IAMユーザー)の設定をし、一通り役割が終えた場合はAdministratorsグループから外すことで、そのユーザーはテナントの権限を縮小させることができます。



###OCIでは初期ユーザー（契約アカウント）を柔軟に運用ができます

管理者とユーザーを分掌するのはセキュリティの基本ではありますが、単純に 消せば/大事にすれば というものではなく管理ポイントを抑えながらポリシーを管理できるかという検討がよいと考えます。

 - 初期ユーザーはアカウント開設手続には必要です、各OCIユーザー(IAMユーザー)を設定することができます
 - 各OCIユーザーの設定後は 初期ユーザーは Administratorsグループから外すことでテナントの権限を縮小できます
 - テナンシーへの通知は契約者アカウントに行われますが、開設後に変更ができます


###管理者アカウントに関して
 - 日常の管理オペレーションには、より権限を絞った管理ユーザーを作成してそれで作業を実施する
 - より小さな権限をもつユーザーが、強力な権限を持つ OCI Administrator に関する操作権限をできないように権限を制限する
 - ユーザーの資格証明の管理権限をテナンシーの管理者権限から剥奪する(これによりテナンシー管理者による成りすましによる不正を防止する)



初期ユーザー以外の考え方はいろいろ説明します。



###OCIでは２つのアカウント(ユーザー)の考え方が存在します。

 - (a) IDCSユーザー
 - (b) OCIユーザー(IAMユーザー)

IDCSはOCIとは別の認証基盤です。 [IDCS:IDentity Cloud Service](https://docs.oracle.com/cd/E83857_01/paas/identity-cloud/uaids/oracle-identity-cloud-service-concepts.html#GUID-D00FA725-7B0C-4111-A71E-24894240D84B "IDCSの概念について") と連携し、[OCIのIAMをフェデレーション](https://docs.oracle.com/cd/E97706_01/Content/Identity/Tasks/federatingIDCS.htm)しています。OCI以外のOracle Cloudのサービスとも連携ができます。(ERP Cloud などオラクルが提供するSaaSサービス) 
IDCSユーザーを使用した場合はActive Directoryと認証連携し、AD←IDCS委託認証をすることもできます。企業内でID登録と認証が煩雑となる場合、一般ユーザーをIDCSでActive DirectoryがAD-Bridgeすることで管理の手間を減らすこともできます。
OCIユーザーは OCIのCloud Infrastructure 関係の操作のみで使用をします。IaaS・DatabaseなどOCI関係の利用であればこれで問題ありません。過去にはOCi Nativeなサービスが少なかったので前述IDCS方式が利便性がありましたが、今は対応するサービスが多くなってきたのでOCIユーザー(IAMユーザー)でも運用には支障がありません。アカウント・パスワードの発行は管理者から行います。


###ユーザー管理は ユースケースの検討ができます。
過去にはIDCSからIDを作成した方がサービスを広く使えるメリットがありましたが、今ではOCIユーザー(IAMユーザー)でも大差ありません。(逆に多要素認証が無償などメリットもある)
ここでは**コンパートメント**という用語が出ます。下記のサイトをご参照下さい。

 - [コーソル様のブログ:コンパートメント – Oracle Cloud Infrastructure特有の概念](https://cosol.jp/techdb/2018/12/compartment_oracle_cloud_infrastructure/)
 - 公式ドキュメント： [../Content/Identity/Tasks/managingcompartments.htm](https://docs.oracle.com/cd/E97706_01/Content/Identity/Tasks/managingcompartments.htm)


**OCIを操作する人が多数の場合**
 Active Directoryと連携し、AD=>IDCSにフェデレーションをすることもできます。企業内でID登録と認証が煩雑となる場合、一般ユーザーをIDCSでActive DirectoryがAD-Bridgeすることで管理の手間を減らすこともできます。
更に、IDCSとOCIユーザー(IAMユーザー)を紐付けて、コンパートメントグループを設定することで、必要以上に権限を与えないようコントロールすることができます。主要な操作をする人のみ、アドミン的なグループを設定して割り振ります。

**OCIを操作する人が限定される場合**
社員は上記のようにIDCSとのフェデレーションで利用し、使用する方のみ権限を与えます。グループ単位で紐付けができます。コンパートメントではIAMより更に細かい権限をリソース(&グループ)単位でコントロールすることができます。

**パートナーなどが操作する場合**
パートナーにはOCIユーザー(IAMユーザー)付与のみにして開発期間中だけコンパートメントで権限を割り当てる使い方です。
ID/PASSを渡すことになりますが、与えられたリソース以外のアクセスはできません。離れた場所の共同開発にはとても便利です。

Qiita記事 : [IDCSとOCI IAMの違いを掘り下げる](https://qiita.com/yamada-hakase/items/c9b1176123f6f3dc3485)


#(2)多要素認証(MFA)
OCIでもMFA: Multi Factor Authorization が利用できます。
是非とも設定しましょう。参考になる記事：[OracleCloud MFA(多要素認証)を使用してセキュリティを高める](https://qiita.com/sugimount/items/37369cd138f57630b970)

先ほどユーザー管理方法は２つある案内をしましたが、(a)IDCSの場合は有償アカウントとして利用です。
(a)IDCS認証 => Identity Cloud Service - Enterprise User [PAYG]720円 [MF]480円 /User Per Month	
(b)OCIユーザー認証(IAMユーザー) =>**無償で利用できます**

OCIユーザー(IAM)は多要素認証が無償で利用できます。
IDCSでは他のSaaS等のSSO(シングルサインオン)のiDP/SMとしても利用ができるので、MFAはEnterpriseの有償の設定となっています。逆にそういったクラウドSSO需要がある場合は寄せてしまうのも考え方としてあります。

###多要素認証方式
・セキュリティの問題
・Mobile Application Passcode /*Authy
・Text Message /SNS
・E-Mail
・Bypaa code
*Authyとかのやり方はAWS/GCPと同じです。


#(3)監査サービス・ログの有効化
期間の延長をしよう
公式ドキュメント ： [../Content/Audit/Tasks/settingretentionperiod.htm](https://docs.oracle.com/cd/E97706_01/Content/Audit/Tasks/settingretentionperiod.htm)

AWS Cloud TrailのOCI版としては様々ありますが、今回目的としてInfrastructure監査サービス・ログでは下記のデータが取れます。
・APIアクティビティが発生した時間
・アクティビティのソース
・アクティビティのターゲット
・アクションのタイプ
・レスポンスのタイプ

###有効期間の延長
監査ログはデフォルトでは保存期間が90日間です。保持期間を最大一年間延長できます。保存期間設定の値は、このテナンシのすべてのリージョンとすべてのコンパートメントに影響します。リージョンやコンパートメントごとに異なる保存期間を設定することはできません。
変更方法は、コンソール画面から[テナントの詳細]から確認・変更ができます。


#(4)Budget(予算)と課金アラートの設定
使い方を確認しよう
公式ドキュメント ： [../Content/Billing/Concepts/billingoverview.htm](https://docs.oracle.com/cd/E97706_01/Content/Billing/Concepts/billingoverview.htm)

OCIでは請求レポートは既にご利用頂けます。さらに予算:Budgetのアラート設定をすることができます。

『XXXで334万溶かした・・・』
そんな悲劇はPublic Cloudでは起きがちです(笑´∀｀)

閾値超え[時/予測]をオーバーした場合に指定のメールにアラートを出します。期間は月の1日～末日が計算期間中ですので、Monthly Flexで月の途中から開始している場合は注意をしてください。オンデマンド(Pay as you go)の場合はデフォルトで1日開始です。
参考 : [TECH4ALLブログ : OCI の利用料金の確認方法・予算アラート機能を使ってみよう](https://tech.opst.co.jp/2020/01/31/oci-%E3%81%AE%E5%88%A9%E7%94%A8%E6%96%99%E9%87%91%E3%81%AE%E7%A2%BA%E8%AA%8D%E6%96%B9%E6%B3%95%E3%83%BB%E4%BA%88%E7%AE%97%E3%82%A2%E3%83%A9%E3%83%BC%E3%83%88%E6%A9%9F%E8%83%BD%E3%82%92%E4%BD%BF/)

コスト分析レポートにて unitPrice(単価)や、myCost(明細ごとの課金額)といったカラムでコストレポートで請求書との突合作業ができます。


---
###Oracle Cloud オススメ サイト
 - [Oracle Cloud Infrastructure 活用資料集](https://community.oracle.com/docs/DOC-1035494)
 - [チュートリアル : Oracle Cloud Infrastructure を使ってみよう](https://community.oracle.com/docs/DOC-1019313)

---
投稿している内容は個人的な見解なので、所属組織とは関係ありません [https://twitter.com/hokaichimei](https://twitter.com/hokaichimei)