What You See Is What You Get Element

OpenStackを使用して迅速かつセキュアにアプリケーションをエンタープライズ・プライベート・クラウドにデプロイする方法(パート2)

Glynn Foster著

このハンズオン・ラボでは、Oracle Solaris 11のOpenStackの基本的な使用方法と、新しく作成した仮想マシン・インスタンスにアプリケーションをインストールする方法を説明します。


2015年1月公開


この記事についてコメントする場合は、リンクをFacebookのOTN Garageのページに投稿してください。同様の記事を共有する場合は、FacebookまたはTwitterに投稿してください。みんなで議論しましょう。
目次
はじめに
ラボのセットアップ
演習1:VMインスタンスのプロビジョニング
演習2:Oracle Database用の環境の設定
演習3:Oracle Databaseのインストール
演習4:Oracle Databaseの実行
演習5:Oracle Solarisのサービス管理機能によるOracle Databaseの自動再起動
演習6:Oracle Solaris 11.2によるコンプライアンスの確保
演習7:Oracle Databaseの統合アーカイブの作成
演習8:仮想環境の保護
関連項目
著者について

はじめに

このラボは、OpenStackを使用してエンタープライズ・プライベート・クラウドをデプロイする方法を説明する2部構成の連載記事のパート2です。先にパート1、"OpenStackによるエンタープライズ・プライベート・クラウドを20分でデプロイする方法"を終了してからこのラボを実行するようにしてください。

このラボでは、Oracle OpenWorld 2014のHands-On Labセッション9822で行った作業について説明します。最初にOracle Solaris 11のOpenStackの基本的な使用方法を説明した後、新しく作成した仮想マシン(VM)インスタンスにアプリケーションをインストールする方法を説明します。

OpenStackは広く使用されているオープン・ソースのクラウド・インフラストラクチャで、Oracle Solaris 11.2にはこれが統合されています。OpenStackには、Webベースのダッシュボードからデータセンター内のコンピューティング・リソース、ストレージ・リソース、ネットワーク・リソースを一元的に管理するためのさまざまなサービスが含まれています。

図1: リソース管理に便利なOpenStackのダッシュボード。



図1:リソース管理に便利なOpenStackのダッシュボード

OpenStackの各サービスを要約すると表1のようになります。

表1:OpenStackサービス
サービス名 説明
Nova コンピューティングの仮想化
Cinder ブロック・ストレージ
Neutron ソフトウェア定義型ネットワーク(SDN)
Keystone クラウド・サービス間の認証
Glance イメージの管理とデプロイ
Horizon Webベースのダッシュボード

このラボでは、OpenStackを使用して新しいVMインスタンスをデプロイし、そのインスタンスにOracle Database 12cをインストールします。インストールしたデータベースが正しく動作することを確認した後、ゴールデン・イメージを作成し、この環境のクローンをクラウド内ですばやく作成できるようにします。

このラボの後半では、Oracle Solaris 11に搭載されているコンプライアンス機能とセキュリティ機能の一部について説明し、クラウドで使用される一般的なコンプライアンス・ライフサイクルを実演します。また、外部の攻撃からVMを保護する方法についても説明します。

ラボのセットアップ

このラボで必要なものは次のとおりです。

  • Oracle Solaris 11.2(rootパスワードはsolaris11
  • ホスト名solarisとIPアドレス範囲10.158.56.0/21
  • /repository/publishers/solarisにあるOracle Solaris Image Packaging Systemリポジトリのクローン
  • Oracle Database 12cのインストール・ファイル(/root/に配置)と、Oracle Database 12cのインストール用レスポンス・ファイル(/root/db_install.rspに配置)

まず、ホストのOS上でターミナル・ウィンドウを開き、SSH接続を開始します。ユーザー/パスワードとしてroot/solaris11を使用します。

# ssh root@10.158.56.x
Password: 
Oracle Corporation      SunOS 5.11      11.2    June 2014

演習1:VMインスタンスのプロビジョニング

Oracle Databaseをインストールする前に、インストール先となるVMインスタンスを作成する必要があります。

まず、ブラウザを開き、前述したIPアドレス(http://10.158.56.x/horizon)を指定し、OpenStackのHorizonダッシュボードにログインします。ログインに使用するユーザー/パスワードはdba/oracledbaです。

図2: ログイン画面

図2:ダッシュボードのログイン画面

ログインに成功したら、Access & Security画面にナビゲートします。この画面では新しいSSHキーペアを作成できます。

図3: Access and Security画面

図3:Access & Security画面

現在はキーペアが何も定義されていないため、「Import Keypair」ボタンをクリックしてImport Keypair画面を開きます(図4を参照)。

このラボでは、ラボの大域ゾーンのSSH公開キーを使用します。最初に次のコマンドを実行してキーを取得し、Import Keypair画面のPublic Keyフィールドにこのキーを入力します。

root@solaris:~# cat .ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA0Khp4Th5VcKQW4LttqzKAR8O60gj43cB0CbdpiizEhXEbVgjI7IlnZlo9i
SEFpJlnZrFQC8MU2L7Hn+CD5nXLT/uK90eAEVXVqwc4Y7IVbEjrABQyB74sGnJy+SHsCGgetjwVrifR9fkxFHg
jxXkOunXrPMe86hDJRpZLJFGYZZezJRtd1eRwVNSHhJdZmUac7cILFJen/wSsM8TOSAkh+ZWEhwY3o08nZg2IW
dMImPbwPwtRohJSH3W7XkDE85d7UZebNJpD9kDAw6OmXsY5CLgV6gEoUExZ/J4k29WOrr1XKR3jiRqQlf3Kw4Y
uK9JUi/gPhg2lTOhISgJoelorQ== root@solaris

図4: Import Keypair画面

 

図4:Import Keypair画面

SSHキーペアのインポートに成功したら、次はこのインスタンス用のネットワークを作成します。メニューから「Networks」を選択して次の画面を開きます。

図5: Networks画面

図5:Networks画面

現在はネットワークが何も定義されていないため、ネットワークを作成します。まず、「Create Network」ボタンをクリックします。

192.168.66.0/24のアドレス範囲を使用するmysubnetという名前のサブネットを持つ、mynetworkというネットワークを作成します。つまり、このネットワークを選択したインスタンスは、192.168.66.3から始まるこのアドレス範囲内に作成されるということです。

図6: Create Network画面

 

図6:Create Network画面

ネットワークを作成したら、Networks画面に表示されることを確認します。

図7: Networks画面

図7:Networks画面

これで、新しいインスタンスを起動する準備ができました。メニューから「Instances」を選択して次の画面を表示します。

図8: Instances画面

図8:Instances画面

Launch Instance」ボタンをクリックして新しいインスタンスを起動します。

このインスタンスにはmyinstanceという名前を付けます。また、フレーバとして、mediumと呼ばれるOracle Solaris非大域ゾーンを指定します。フレーバは、このインスタンスに付与する必要があるリソースの規模を表します。図9を見ると、10GBのrootディスクと2,048MBのRAMが割り当てられる予定であることがわかります。このインスタンスは、パート1でアップロードしたイメージからブートすることにします。イメージはBase Zoneという名前でGlanceに格納されています。

図9: Launch Instance画面


図9:Launch Instance画面

Detailsタブの内容に問題がなければ、Access & Securityタブに切り替えます。このタブを表示すると、先ほど作成したキーペアがすでに選択されているため、何もせずにNetworkingタブに切り替えます。このタブでは、使用するネットワークとして「mynetwork」を選択します。「Launch」ボタンをクリックします。

図10: Networkingタブ


図10:Networkingタブ

しばらくすると、インスタンスが起動していることを確認できます。選択したサブネット・アドレス空間によっては、インスタンスのIPアドレスが多少異なる場合があります。

図11: インスタンスのステータスが"Active"であることを示す画面

図11:インスタンスのステータスが"Active"であることを示す画面

これで、このインスタンスにログインできる状態になりました。このラボでは、内部ネットワーク・トポロジを設定するだけの簡単な方法を採用しました。一般的なクラウド環境では、外部ネットワークを設定し、VMが外部と通信できるようにします。このVMにアクセスするには、大域ゾーンを経由する必要があります。

root@solaris:~# ssh root@192.168.66.3
The authenticity of host '192.168.66.3 (192.168.66.3)' can't be established.
RSA key fingerprint is 89:64:96:91:67:ab:6b:35:58:37:35:b8:ab:f3:e5:98.
Are you sure you want to continue connecting (yes/no)?yes
Warning:Permanently added '192.168.66.3' (RSA) to the list of known hosts.
Last login:Thu Sep 11 00:33:57 2014
Oracle Corporation      SunOS 5.11      11.2    June 2014
root@host-192-168-66-3:~# ipadm
NAME              CLASS/TYPE STATE        UNDER      ADDR
lo0               loopback   ok           --         --
   lo0/v4         static     ok           --         127.0.0.1/8
   lo0/v6         static     ok           --         ::1/128
net0              ip         ok           --         --
   net0/dhcp      inherited  ok           --         192.168.66.3/24
root@host-192-168-66-3:~# exit
logout
Connection to 192.168.66.3 closed.

演習2:Oracle Database用の環境の設定

インスタンスのプロビジョニングが終了しました。次はOracle Databaseをインストールします。データベースをインストールするには、先に満たしておくべき前提条件が多数あります。この演習ではその部分を実行します。この演習では、最小要件を満たす環境を作成し、(GUIを使用するインストールではなく)レスポンス・ファイルを使用してデータベースのサイレント・インストールを実行します。

まず、oracleという新しいユーザーを追加し、2つのグループoinstalldbaをこのユーザーに割り当てます。

# useradd -m oracle
80 blocks
# groupadd oinstall
# groupadd dba
# usermod -g oinstall -G dba oracle

次に、user.oracleという新しいプロジェクトを作成し、適切なリソース管理を設定します。このラボでは、特定のプロセスで使用できるファイル記述子の最大値をデフォルトから増やす必要があります。

# projadd user.oracle
# projmod -U oracle -sK "process.max-file-descriptor=(basic,65536,deny)" user.oracle
# projmod -U oracle -sK "project.max-shm-memory=(priv,8589934592,deny)" user.oracle

依存関係にあるソフトウェアが正しくインストールされていることも確認します。Oracle Solaris 11.2では、oracle-rdbms-server-12-1-preinstallという名前の新しいパッケージが追加されました。Oracle Databaseのインストールに必要な、依存関係にあるパッケージは、すべてこのパッケージに含まれています。このパッケージをインストールします。

# pkg install oracle-rdbms-server-12-1-preinstall
Packages to install:11
            Services to change:2
       Create boot environment:No
Create backup boot environment:No
DOWNLOAD                                PKGS         FILES    XFER (MB)   SPEED
Completed                              11/11       254/254      5.0/5.0    0B/s

PHASE                                          ITEMS
Installing new actions                       644/644
Updating package state database                 Done 
Updating package cache                           0/0 
Updating image state                            Done 
Creating fast lookup database                   Done 
Updating package cache                           1/1 

次は、Oracle Databaseをインストールする場所を作成します。便宜上、インストール先は既存のZFS rootプールにしますが、インストール用のデータセットは新たに作成します。

# zfs create rpool/apps
# zfs set mountpoint=/apps rpool/apps
# zfs list rpool/apps
NAME        USED  AVAIL  REFER  MOUNTPOINT
rpool/apps   31K  31.4G    31K  /apps

また、初めにoracleサブディレクトリを作成し、oracleユーザーに適切な権限が付与されていることを確認します。

# mkdir /apps/oracle
# chown -R oracle:dba /apps

最後に、oracleユーザーのパスワードをsolaris11に設定し、このアカウントにログインします。

# passwd oracle
# su - oracle

演習3:Oracle Databaseのインストール

最初に、Oracle Databaseのインストール・ファイルをダウンロードする必要があります。Oracle Databaseソフトウェアのダウンロード・ページでライセンス契約を受諾した後、書込み可能な場所(oracleユーザーの$HOME/tmpディレクトリなど)に、各自のアーキテクチャに適した.zipファイルをダウンロードします。

ファイルのダウンロードが終わったら、.zipファイルを解凍します。

$ scp root@192.168.66.2:/files/* .
$ unzip '*.zip'
$ cd database

今回は、レスポンス・ファイルを使用してデータベースのサイレント・インストールを実行します。このインストールでは、(データベースのインストールと構成ではなく、)データベースのみのインストールでEnterprise Editionをインストールします。次の内容を含むdb_install.rspレスポンス・ファイルを作成します。

oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v12.1.0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=solaris
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/apps/oraInventory
SELECTED_LANGUAGES=en
ORACLE_HOME=/apps/oracle/oracledb12c
ORACLE_BASE=/apps/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.BACKUPDBA_GROUP=dba
oracle.install.db.DGDBA_GROUP=dba
oracle.install.db.KMDBA_GROUP=dba
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
oracle.installer.autoupdates.option=SKIP_UPDATES

このレスポンス・ファイルは、各自の環境に合うように必要に応じて調整できます。

これで、Oracle Databaseインストーラを実行できます。

$ ./runInstaller -silent -responseFile /export/home/oracle/db_install.rsp
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 180 MB.   Actual 796 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 1749 MB    Passed
[WARNING] [INS-13014] Target environment does not meet some optional requirements.
 CAUSE:Some of the optional prerequisites are not met.See logs for details. 
/tmp/OraInstall2014-09-28_02-25-07PM/installActions2014-09-28_02-25-07PM.log
 ACTION:Identify the list of failed prerequisite checks from the log: 
/tmp/OraInstall2014-09-28_02-25-07PM/installActions2014-09-28_02-25-07PM.log.Then 
either from the log file or from installation manual find the appropriate 
configuration to meet the prerequisites and fix it manually.
You can find the log of this install session at:
 /apps/oraInventory/logs/installActions2014-09-28_02-25-07PM.log

インストーラは、Oracle Databaseをインストールする前に、長いチェック・リストを検証し、環境が要件を満たしていることを確認します。一部のオプション要件は満たされていない場合もありますが、心配する必要はありません。しばらくすると、インストールが正しく終了します。/apps/oraInventory/logs/installActions*.logの内容をチェックすれば、Oracle Databaseが正しくインストールされていることをいつでも確認できます。

The installation of Oracle Database 12c was successful.
Please check '/apps/oraInventory/logs/silentInstall2014-09-28_02-25-07PM.log' for more details.

As a root user, execute the following script(s):
        1./apps/oraInventory/orainstRoot.sh
        2./apps/oracle/oracledb12c/root.sh

Successfully Setup Software.

インストールが終了したら、インストーラの指示に従っていくつかのスクリプトをrootアカウントで実行し、oracleアカウントでログインし直します。

$ logout
# /apps/oracle/oraInventory/orainstRoot.sh
Changing permissions of /apps/oracle/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /apps/oracle/oraInventory to oinstall.
The execution of the script is complete.
# /apps/oracle/oracledb12c/root.sh
Check /apps/oracle/oracledb12c/install/root_solaris_2014-09-28_14-51-55.log for the output of root script
# su - oracle

演習4:Oracle Databaseの実行

Oracle Databaseがインストールされたかどうか、テストを行って確認した後、このデータベースに使用できるデフォルト環境を設定します。最初に次の環境変数を設定します。

$ export ORACLE_BASE=/apps/oracle
$ export ORACLE_HOME=/apps/oracle/oracledb12c
$ export ORACLE_SID=orcl
$ export LD_LIBRARY_PATH=/apps/oracle/oracledb12c/lib
$ export PATH=/apps/oracle/oracledb12c/bin:$PATH

また、/var/opt/oracle/oratabファイルに次の行を追加して、サイト識別子(ORACLE_SID)とデータベース・ホーム(ORACLE_HOME)を関連付けます。

orcl:/apps/oracle/oracledb12c:Y

さらに、/apps/oracle/oracledb12c/dbs/initorcl.oraに次の内容を含むファイルを作成し、ORACLE_SIDの初期化パラメータ・ファイルとします。

db_name='orcl'

ここで、インスタンスを起動していくつかのSQL*Plusコマンドを実行すれば、Oracle Databaseインスタンスが動作しているかどうかを確認できます。

$ dbstart /apps/oracle/oracle12c
Processing Database instance "orcl": log file /apps/oracle/oracledb12c/startup.log
$ sqlplus /nolog

SQL*Plus:Release 12.1.0.2.0 Production on Sun Sep 28 16:43:38 2014

Copyright (c) 1982, 2014, Oracle.All rights reserved.

SQL> connect / as sysdba
Connected.
SQL> create database orcl;

Database created.

SQL> connect orcl as sysdba;
Enter password:solaris11
Connected.
SQL> create table participants(
  2  first_name varchar2(25) not null,
  3  last_name varchar2(25) not null);

Table created.

SQL> describe participants;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 FIRST_NAME                                NOT NULL VARCHAR2(25)
 LAST_NAME                                 NOT NULL VARCHAR2(25)

SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

動作することを確認できたので、このデータベース・インスタンスを停止します。

$ dbshut /apps/oracle/oracle12c

演習5:Oracle Solarisのサービス管理機能によるOracle Databaseの自動再起動

OpenStackクラウド用に作成するゴールデン・イメージで、初回起動時にOracle Databaseを自動で起動できると便利です。これを実現するためには、ゴールデン・イメージをOracle Solarisのサービス管理機能に統合します。サービス管理機能とは、Oracle Solaris 11上のシステム・サービスを管理し、ソフトウェア障害やハードウェア障害の発生時に高可用性を提供する機能です。

まず、サービス管理機能のマニフェストを作成します。マニフェストとは、サービスについての説明と、サービスの起動/停止方法を記述したものです。Oracle Solaris 11にはsvcbundleコマンドが用意されているため、もっともシンプルな形式のマニフェストを簡単に作成できます。このコマンドを実行し、次のように起動方法と停止方法を指定します。

# svcbundle -s service-name=site/oracledb12c \
  -s start-method="dbstart /apps/oracle/oracledb12c" \
  -s stop-method="dbshut /apps/oracle/oracledb12c" -o oracledb12c.xml

すると、必要に応じて手動による追加が可能な基本テンプレートを含んだoracledb12c.xmlというファイルが出力されます。今回は、データベースがoracleユーザーで実行され適切な環境変数が設定されるように、ファイルを少し変更する必要があります。そのため、起動と停止のexec_methodごとにメソッド・コンテキストを追加します。

oracledb12c.xmlを開き、<exec_method> XMLタグを探します。代わりに次の内容が使用されるように変更します。

<exec_method timeout_seconds="60" type="method" name="start"
            exec="dbstart /apps/oracle/oracledbc12c">
            <method_context>
               <method_credential user="oracle" group="dba"/>
               <method_environment>
                  <envvar name="ORACLE_BASE" value="/apps/oracle"/>
                  <envvar name="ORACLE_HOME" value="/apps/oracle/oracledb12c"/>
                  <envvar name="ORACLE_SID" value="orcl"/>
                  <envvar name="LD_LIBRARY_PATH" value="/apps/oracle/oracledb12c/lib"/>
                  <envvar name="PATH" value="/apps/oracle/oracledb12c/bin"/>
               </method_environment>
            </method_context>
        </exec_method>
        <exec_method timeout_seconds="60" type="method" name="stop"
            exec="dbshut /apps/oracle/oracledb12c">
            <method_context>
               <method_credential user="oracle" group="dba"/>
               <method_environment>
                  <envvar name="ORACLE_BASE" value="/apps/oracle"/>
                  <envvar name="ORACLE_HOME" value="/apps/oracle/oracledb12c"/>
                  <envvar name="ORACLE_SID" value="orcl"/>
                  <envvar name="LD_LIBRARY_PATH" value="/apps/oracle/oracledb12c/lib"/>
                  <envvar name="PATH" value="/apps/oracle/oracledb12c/bin"/>
               </method_environment>
            </method_context>
        </exec_method>

ここでファイルを検証し、ミスがないことを確認します。

# svccfg validate oracledb12c.xml

最後に、このファイルをサイトのサービス管理機能のマニフェストがある場所にコピーし、manifest-importサービスを再起動します。

# mv oracledb12c.xml /lib/svc/manifest/site
# svcadm restart manifest-import
STATE          STIME    FMRI
online          6:55:38 svc:/site/oracledb12c:default

次のコマンドを実行し、Oracle Databaseが実行されているかどうかを確認します。

# svcs oracledb12c

実行中のプロセスのリストが表示され、Oracle Databaseが実行されていることを確認できます。

演習6:Oracle Solaris 11.2によるコンプライアンスの確保

OpenSCAPセキュリティ報告フレームワークがOracle Solaris 11.1で導入されました。SCAP(Secure Content Automation Protocol)は構成の管理とレポートのオープン標準で、もともとは米国防総省および米国標準技術局のために作成されたものです。フレームワークの開発は公共部門から始まりましたが、システム構成とセキュリティ管理を表現する標準の方法として、SCAPエコシステムの採用が主要ベンダーの間で急速に進んでいます。

Oracle Solaris 11.2では、便利な新しいコマンドcompliance(1M)にOpenSCAPが組み込まれています。現在、この新しいcomplianceコマンドには次の3つの主要オプションがあります。

  • guide:コンプライアンス標準(ベンチマークとも呼ばれます)に適合する方法が書かれた"ステップ・バイ・ステップ"ガイドを作成します。
  • assess:標準に含まれる一連のセキュリティ・チェック項目に照らしてシステムを評価します。assessサブコマンドから出力されるXMLファイルは、コンプライアンス管理ツールにインポートすることができます。
  • report:XMLで表現された評価を、判読可能なHTMLファイルに変換します。これはXMLからHTMLにXML変換したファイルであり、それぞれの組織の要件に合わせて変更できます。

Oracle Solaris 11.2からは、3つの重要なセキュリティ/コンプライアンス標準が導入されています。

  • PCI-DSS:オラクルがPCI-DSSをシステム構成とセキュリティ管理に対応させたものです。このレポート・プロファイルは、Oracle Solarisエンジニアリング・チームと、有数のPCI-DSS QSA(監査法人)が共同作成したものです。この標準にはおよそ200の管理項目が含まれています。
  • Solarisベースライン:これは、Oracle Solarisの"デフォルトでセキュア"なセキュリティ・プロファイル、すなわちほとんどのユーザーのリスク・プロファイルに適合するように調整された"標準"のセキュリティ・ポスチャーに対応しています。新規にインストールされたシステムは、このプロファイルに合格するはずです。
  • Solaris推奨:この推奨ポリシーは、オラクルがCISのために開発したCISセキュリティ・ベンチマークのセキュリティ・ポスチャーにほぼ一致します。この推奨ベンチマークのほうが実行に時間がかかる場合がありますが、より厳しいチェックが行われ、ベースライン標準には含まれないリスクに対処します。

では、既存のOracle Database VMインスタンスでコンプライアンス・レポートを実行してみましょう。Solarisベースライン・ポスチャーの評価を生成します。

# compliance assess
Assessment will be named 'solaris.Baseline.2014-09-29,14:52'
        Package integrity is verified
        Test_1.1
        fail

        The OS version is current
        Test_1.2
        fail

        Package signature checking is globally activated
        Test_1.3
        pass

        All local filesystems are ZFS
        Test_2.1
        pass

Address Space Layout Randomization (ASLR) is enabled
        Test_6.6
        pass

        Check all default audit properties
        Test_7.1
        pass

complianceコマンドのレポート内容を見てみましょう。

# compliance list
Benchmarks:
        pci-dss
        solaris
Assessments:
        solaris.Baseline.2014-09-29,14:52

これで、この評価についてのレポートを生成できます。

# compliance report
/var/share/compliance/assessments/solaris.Baseline.2014-09-29,14:52/report.html

このコンプライアンス・レポートの出力をApacheのドキュメント・ルートにコピーし、Webブラウザで表示できるようにします。

# cp /var/share/compliance/assessments/solaris*/report.html /var/apache2/2.2/htdocs/

Webブラウザを開き、http://10.158.56.x/report.htmlにナビゲートします。

図12: ブラウザでのコンプライアンス・レポートの表示

図12:ブラウザでのコンプライアンス・レポートの表示

今度は、Solarisベースライン・ベンチマークを使用するのではなく、PCI-DSSベンチマークに対してレポートを実行します。

# compliance assess -b pci-dss
Assessment will be named 'pci-dss.Solaris_PCI-DSS.2014-09-29,15:14'
...

最初のレポートが完了したら、PCI-DSSコンプライアンス・ガイドも作成できます。コンプライアンス・ガイドとは、PCI-DSSセキュリティ標準にマッピングされたOracle Solarisのセキュリティ管理項目を記述したドキュメントです。このドキュメントは、Oracle Solarisシステムの構成方法を決定する際に役立つ他、セキュリティ監査人に提示する生成物としても使用できます。

# compliance guide -b pci-dss 
/var/share/compliance/guides/pci-dss.html

演習7:Oracle Databaseの統合アーカイブの作成

統合アーカイブはOracle Solaris 11.2で追加された新機能で、システムのクローニング機能とディザスタ・リカバリ機能を提供するものです。統合アーカイブはGlanceイメージ管理サービスに統合されており、新しいVMインスタンスをOpenStackにデプロイするときは、必要なものがここからインストールされます。

初めに既存のインスタンスの統合アーカイブを取得します。

# archiveadm create myinstance.uar

次に、いくつかの環境変数を設定し、このアーカイブをGlanceにアップロードできるようにします。

# export OS_AUTH_URL=http://localhost:5000/v2.0/
# export OS_PASSWORD=glance
# export OS_USERNAME=glance
# export OS_TENANT_NAME=service

これらの環境変数を設定したら、統合アーカイブをGlanceにインポートできます。

# glance image-create --container-format bare --disk-format raw --is-public true \
--name "DB Zone" --property architecture=sparc64 \
--property hypervisor_type=solariszones \
--property vm_mode=solariszones < myinstance.uar 
+----------------------------+--------------------------------------+
| Property                   | Value                                |
+----------------------------+--------------------------------------+
| Property 'architecture'    | sparc64                              |
| Property 'hypervisor_type' | solariszones                         |
| Property 'vm_mode'         | solariszones                         |
| checksum                   | 336bdfe5f76876fe24907e35479101e7     |
| container_format           | bare                                 |
| created_at                 | 2014-09-11T00:52:14.269232           |
| deleted                    | False                                |
| deleted_at                 | None                                 |
| disk_format                | raw                                  |
| id                         | b42e47ee-d8dc-e50c-d6e0-9206d761ce41 |
| is_public                  | True                                 |
| min_disk                   | 0                                    |
| min_ram                    | 0                                    |
| name                       | DB Zone                              |
| owner                      | f17341f0a2a24ec9ec5f9ca497e8c0cc     |
| protected                  | False                                |
| size                       | 1277245440                           |
| status                     | active                               |
| updated_at                 | 2014-09-11T00:52:42.352947           |
+----------------------------+--------------------------------------+

新しいイメージをGlanceにアップロードしたので、次は新しく作成したVMインスタンスにこれをデプロイします。HorizonのLaunch Instances画面に再度ナビゲートし、新しいインスタンスを起動します。先ほどはImage NameとしてBase Zoneを選択しましたが、今回は「DB Zone」を選択します。

演習8:仮想環境の保護

コンプライアンス・チェックを実行し、監査人から承認を受けた環境があり、その環境を取得してOpenStackにアップロードしたと仮定します。Oracle Solaris 11では、不変非大域ゾーンと不変大域ゾーンを通じて読取り専用の環境を作成できるようになりました。これは、セキュリティ権限がなければ変更できない改ざん防止環境を提供する機能です。

読取り専用機能としては多数のオプションがあります。たとえば、あらゆるものをロックする、特定のシステムの構成のみを修正する、いくつかの制約を伴う柔軟な構成にする、といったことができます。

不変ゾーンを作成するには、Horizonで新しいフレーバを作成する必要があります。dbaユーザーからログアウトし、admin/secreteでログインします。OpenStackのダッシュボード(Horizon)から、「Admin」→「Flavor」の順にページをナビゲートします。既存のOracle Solarisフレーバのいずれかを更新することも、新規にフレーバを作成することもできます。ここでは、Immutable Solaris non-global Zoneという名前の新しいフレーバを作成します(図13を参照)。

図13: 新しいフレーバの作成

図13:新しいフレーバの作成

必ずFlavor Accessタブを使用して、このフレーバを使用するプロジェクトを含めるようにしてください。

次は、表のMoreメニューから「View Extra Specs」を選択します。

図14: Moreメニューの使用

図14:Moreメニューの使用

図15に示すような画面が表示されます。

図15: Flavor Extra Specs画面

図15:Flavor Extra Specs画面

新しいフレーバをゼロから作成するため、このフレーバが属するゾーンのタイプも設定する必要があります。「Create」を選択し、図16に示す情報を入力して非大域ゾーンを設定します。

図16: ゾーンの設定


図16:ゾーンの設定

次に、先ほどと同様に、zonecfg:file-mac-profile用のキーと値のペアを作成します。Valueはflexible-configurationfixed-configuration(図17)、またはstrictにします。

図17: キーと値のペアの作成


図17:キーと値のペアの作成

ここで、このフレーバを使用して新しいVMインスタンスを作成すれば、次のとおり、先ほど作成した非大域ゾーンの構成を確認できます。

# zonecfg -z instance-0000000f info
zonename: instance-0000000f
zonepath:/system/zones/instance-0000000f
brand: solaris
autoboot: false
autoshutdown: shutdown
bootargs:
file-mac-profile: fixed-configuration
... 

これでラボは終了です。お疲れ様でした。ご参加いただきありがとうございました。

参考資料

また、次のリソースも参照してください。

著者について

Glynn Fosterは、Oracle SolarisのPrincipal Product Managerです。OpenStack、Oracle Solaris Image Packaging System、インストール、構成管理など、さまざまなテクノロジー領域を担当しています。

リビジョン1.0、2015/01/14

フォロー先:
ブログ | Facebook | Twitter | YouTube