DB2 V9.7 新機能ワークショップ - IBM · db2 の権限v9.7 から sysadm システム管理...
Transcript of DB2 V9.7 新機能ワークショップ - IBM · db2 の権限v9.7 から sysadm システム管理...
セキュリティー機能強化
本書に含まれている情報は、正式なIBMのテストを受けていません。また、明記にしろ、暗黙的にしろ、なんらの保証もなしに配布されるものです。
この情報の使用またはこれらの技術の実施は、いずれも、使用先の責任において行われるべきものであり、それらを評価し、実際に使用する環境に統合する使用先の判断に依存しています。それぞれの項目は、ある特定の状態において正確であることがIBMによって調べられていますが、他のところで同じまたは同
様の結果が得られる保証はありません。これらの技術を自身の環境に適用することを試みる使用先は、自己の責任において行う必要があります。
© Copyright IBM Japan Systems Engineering Co., Ltd. 2009
DB2 V9.7新機能ワークショップ
2 © 2009 ISE Corporation
• 目的目的目的目的
• DB管理者とセキュリティー管理者の権限を分離
• 必要以上の権限をユーザーやグループに与えないようにする
• 目的目的目的目的
• データ暗号化の強化
• SSL通信の設定の簡素化
内容
•SYSADM、SECADM、DBADMの明確な役割分担
•SSL設定はDBM CFGで実施
主主主主なななな変更点変更点変更点変更点
権限権限権限権限のののの分離分離分離分離
ネットワークネットワークネットワークネットワーク機能強化機能強化機能強化機能強化
3 © 2009 ISE Corporation
権限の分離権限の分離
4 © 2009 ISE Corporation
権限の分離 ~内容~
• DB2のののの権限権限権限権限
• インスタンスインスタンスインスタンスインスタンス権限権限権限権限のののの変更点変更点変更点変更点
• SYSADM
• SYSMON
• データベースデータベースデータベースデータベース権限権限権限権限のののの変更点変更点変更点変更点
• SECADMの変更
• DBADMの変更点
• 新新新新しいしいしいしいデータベースデータベースデータベースデータベース権限権限権限権限
• SQLADM
• WLMADM
• EXPLAIN
• 移行移行移行移行
5 © 2009 ISE Corporation
DB2の権限 以前まで
SYSADMSYSADMSYSADMSYSADM
システム管理システム管理
SYSCTRLSYSCTRLSYSCTRLSYSCTRLシステム制御システム制御
SYSMAINTSYSMAINTSYSMAINTSYSMAINTシステム保守システム保守
データベースデータベースデータベースデータベースデータベースデータベースデータベースデータベース
インスタンスインスタンスインスタンスインスタンス
SYSSYSSYSSYSMONMONMONMON
システムシステム・モニター・モニター
SECADMSECADMSECADMSECADMセキュリティー管理セキュリティー管理
V9.1 ~~~~
DBADMDBADMDBADMDBADMデータベース管理権限データベース管理権限
SYSADMには暗黙的にDBADMが付与されている
SYSADMはSECADM、DBADM権限の付与が可能
新規新規新規新規DBDBDBDB環境環境環境環境をををを構築構築構築構築するとするとするとすると…
6 © 2009 ISE Corporation
DB2の権限 V9.7から
SYSADMSYSADMSYSADMSYSADM
システム管理システム管理
SYSCTRLSYSCTRLSYSCTRLSYSCTRL****
システム制御システム制御
SYSMAINTSYSMAINTSYSMAINTSYSMAINT****
システム保守システム保守
インスタンスインスタンスインスタンスインスタンス
SYSSYSSYSSYSMONMONMONMON********
システムシステム・モニター・モニター
SECADMSECADMSECADMSECADMセキュリティー管理セキュリティー管理
V9.1 ~~~~
DBADMDBADMDBADMDBADM
データベース管理権限データベース管理権限
EXPLAINEXPLAINEXPLAINEXPLAINEXPLAINEXPLAINEXPLAINEXPLAIN
WLMADMWLMADMWLMADMWLMADMWLMADMWLMADMWLMADMWLMADM
SQLADMSQLADMSQLADMSQLADMSQLADMSQLADMSQLADMSQLADM
ACCESSCTRLACCESSCTRLACCESSCTRLACCESSCTRLACCESSCTRLACCESSCTRLACCESSCTRLACCESSCTRL
DATAACCESSDATAACCESSDATAACCESSDATAACCESSDATAACCESSDATAACCESSDATAACCESSDATAACCESS
*:変更なし**:マイナー変更
××××
××××SYSADMはSECADM、DBADM権限を付与できない
SYSADMには暗黙的にDBADM権限が付与されない
新規新規新規新規DBDBDBDB環境環境環境環境をををを構築構築構築構築するとするとするとすると…
データベースデータベースデータベースデータベースデータベースデータベースデータベースデータベース
7 © 2009 ISE Corporation
SYSADMの変更点 インスタンス権限
• DBADM権限権限権限権限はははは付与付与付与付与されないされないされないされない
• 以前の権限が必要な場合、明示的にDBADM権限を付与する
• SECADM権限権限権限権限をををを付与付与付与付与できないできないできないできない
• SECADM権限の付与はSECADMのみ可能に
• V9.7からはからはからはからはSYSADMはははは以下以下以下以下のみのみのみのみ実行可能実行可能実行可能実行可能
• Upgrade database
• Restore database
• DBM CFG の変更
8 © 2009 ISE Corporation
(参考)SYSMONの変更点 インスタンス権限
• 実行可能実行可能実行可能実行可能ななななLISTコマンドコマンドコマンドコマンドのののの拡張拡張拡張拡張
• db2mtrkのののの実行実行実行実行がががが可能可能可能可能
GET DATABASE MANAGER MONITOR SWITCHES
GET MONITOR SWITCHES
GET SNAPSHOT
LIST ACTIVE DATABASES
LIST APPLICATIONS
LIST DCS APPLICATIONS
RESET MONITOR
UPDATE MONITOR SWITCHES
db2GetSnapshot
db2GetSnapshotSize
db2MonitorSwitches
db2ResetMonitor
GET DATABASE MANAGER MONITOR SWITCHES
GET MONITOR SWITCHES
GET SNAPSHOT
LIST ACTIVE DATABASES
LIST APPLICATIONS
LIST DATABASE PARTITION GROUPS
LIST DCS APPLICATIONS
LIST PACKAGES
LIST TABLES
LIST TABLESPACE CONTAINERS
LIST TABLESPACES
LIST UTILITIES
RESET MONITOR
UPDATE MONITOR SWITCHES
db2GetSnapshot
db2GetSnapshotSize
db2MonitorSwitches
db2mtrk
db2ResetMonitor
V9.5
V9.7
9 © 2009 ISE Corporation
SECADMの変更 データベース権限
• データベースデータベースデータベースデータベース権限権限権限権限のののの GRANT/REVOKE をすべてをすべてをすべてをすべて管理管理管理管理
• DBADM、SECADMなど
• RoleややややGroupにににに対対対対してしてしてしてSECADMををををGRANT/REVOKE可能可能可能可能
• 以前はUserにのみ可能
• 以下以下以下以下ののののAuditストアードストアードストアードストアード・・・・プロシージャープロシージャープロシージャープロシージャーやややや表関数表関数表関数表関数をををを実行実行実行実行するするするする必要必要必要必要がないがないがないがない
• AUDIT_ARCHIVES
• AUDIT_LIST_LOGS
• AUDIT_DELIM_EXTRACT
以前は、SECADMのみ実行可能
V97では、上記のEXECUTE特権を他のユーザにGRANT可能になった
10 © 2009 ISE Corporation
DBADMの変更点 データベース権限
• DBADMををををGrant/Revokeできるのはできるのはできるのはできるのは、、、、SECADMのみのみのみのみ
• DBADM権限権限権限権限をををを付与付与付与付与するするするする時時時時、、、、以下以下以下以下のののの権限権限権限権限もももも付与付与付与付与するかするかするかするか選択可能選択可能選択可能選択可能
• DATAACCESS
• データアクセス可否に関する権限
• デフォルトは WITH DATAACCESS
• ACCESSCTRL
• 権限のGrant/Revokeに関する権限
• デフォルトは WITH ACCESSCTRL
• 以前以前以前以前ははははDBADMはははは自動的自動的自動的自動的ににににGrant/Revoke権限権限権限権限、、、、データデータデータデータののののアクセスアクセスアクセスアクセス権権権権がががが付与付与付与付与されていたがされていたがされていたがされていたが、、、、V9.7からはからはからはからは、、、、選択可能選択可能選択可能選択可能
例GRANTE DBADM WITH DATAACCESS WITH ACCESSCTRLWITH DATAACCESS WITH ACCESSCTRLWITH DATAACCESS WITH ACCESSCTRLWITH DATAACCESS WITH ACCESSCTRL
ON DATABASE TO USER XXXX
11 © 2009 ISE Corporation
(参考)DBADM権限のREVOKE
• 今今今今まではまではまではまではDBADM権限権限権限権限ををををREVOKEしてもしてもしてもしても以下以下以下以下のののの権限権限権限権限はははは残残残残るるるる
• BINDADD
• CONNECT
• CREATETAB
• CREATE_EXTERNAL_ROUTINE
• CREATE_NOT_FENCED_ROUTINE
• IMPLICIT_SCHEMA
• QUIESCE_CONNECT
• LOAD
• V97ではではではでは自動的自動的自動的自動的にににに上記上記上記上記のののの権限権限権限権限ももももREVOKEされるされるされるされる
12 © 2009 ISE Corporation
その他の新しいデータベース権限
• ACCESSCTRL
• Grant/revoke権限
• DBADMに対する権限(デフォルトは付与される)
• DATAACCESS
• データへのアクセス権限
• DBADMに対する権限(デフォルトは付与される)
• WLMADM
• Workload manager用の権限
• SQLADM
• SQLチューニング用の権限
• EXPLAIN
• EXPLAIN実行用の権限
13 © 2009 ISE Corporation
WLMADM
• Workload Manager用用用用のののの権限権限権限権限
• work action sets、Work class setsなどの作成
• DBADM権限権限権限権限ののののサブセットサブセットサブセットサブセット
SECADMSECADMSECADMSECADMセキュリティー管理セキュリティー管理
V9.1 ~~~~
DBADMDBADMDBADMDBADMデータベース管理権限データベース管理権限
EXPLAINEXPLAINEXPLAINEXPLAINEXPLAINEXPLAINEXPLAINEXPLAIN
WLMADMWLMADMWLMADMWLMADMWLMADMWLMADMWLMADMWLMADM
SQLADMSQLADMSQLADMSQLADMSQLADMSQLADMSQLADMSQLADM
14 © 2009 ISE Corporation
SQLADM
• SQLステートメントステートメントステートメントステートメントののののモニタリングモニタリングモニタリングモニタリングにににに使用使用使用使用するするするする権限権限権限権限
• CREATE EVENT MONITOR、REORG、RUNSTATS など
• DBADM権限権限権限権限ののののサブセットサブセットサブセットサブセット
SECADMSECADMSECADMSECADMセキュリティー管理セキュリティー管理
V9.1 ~~~~
DBADMDBADMDBADMDBADMデータベース管理権限データベース管理権限
EXPLAINEXPLAINEXPLAINEXPLAINEXPLAINEXPLAINEXPLAINEXPLAIN
WLMADMWLMADMWLMADMWLMADMWLMADMWLMADMWLMADMWLMADM
SQLADMSQLADMSQLADMSQLADMSQLADMSQLADMSQLADMSQLADM
15 © 2009 ISE Corporation
EXPLAIN
• 以下以下以下以下のののの実行実行実行実行のみのみのみのみ可能可能可能可能
• EXPLAIN、EXPLAIN関数
• PREPARE
• DESCRIBE SELECT
• 例:describe select (*) from table
• ただし、データへのアクセス権限はなし
• SQLADM権限権限権限権限ののののサブセットサブセットサブセットサブセットSECADMSECADMSECADMSECADM
セキュリティー管理セキュリティー管理
V9.1 ~~~~
DBADMDBADMDBADMDBADMデータベース管理権限データベース管理権限
EXPLAINEXPLAINEXPLAINEXPLAINEXPLAINEXPLAINEXPLAINEXPLAIN
WLMADMWLMADMWLMADMWLMADMWLMADMWLMADMWLMADMWLMADM
SQLADMSQLADMSQLADMSQLADMSQLADMSQLADMSQLADMSQLADM
16 © 2009 ISE Corporation
データベース作成者のデフォルト権限
• 以前以前以前以前までまでまでまで
• 自動的にDBADM権限が付与される
• V9.7からからからから
• 自動的に、DBADM(ACCESSCTRL と DATAACCESS付) 、SECADM 権限が付与される
必要以上の権限が付与されるため、必要に応じて明示的に権限をREVOKEする
17 © 2009 ISE Corporation
一般的な移行パターン
SECADMSECADMSECADMSECADMセキュリティー管理セキュリティー管理
DBADMDBADMDBADMDBADM
データベース管理権限データベース管理権限
SYSADMSYSADMSYSADMSYSADMシステム管理システム管理
SYSADMSYSADMSYSADMSYSADMシステム管理システム管理
DBADMDBADMDBADMDBADM
データベース管理権限データベース管理権限
SECADMSECADMSECADMSECADMセキュリティー管理セキュリティー管理
DBADMDBADMDBADMDBADM
データベース管理権限データベース管理権限
SYSADMSYSADMSYSADMSYSADMシステム管理システム管理
SYSADMSYSADMSYSADMSYSADMシステム管理システム管理
DBADMDBADMDBADMDBADM
データベース管理権限データベース管理権限
移行移行移行移行パターンパターンパターンパターン2222
移行移行移行移行パターンパターンパターンパターン1111
V9.7V9.5
V9.7V9.5
変化変化変化変化なしなしなしなし
SECADMがががが
移行移行移行移行ユーザーユーザーユーザーユーザーにににに付与付与付与付与
18 © 2009 ISE Corporation
移行後の権限
• SYSADMにににに自動的自動的自動的自動的にににに以下以下以下以下のののの権限権限権限権限がががが付与付与付与付与されるされるされるされる
• DBADM(DATAACESS と ACCESSCTRL権限付)
• DBADMをををを持持持持つつつつユーザユーザユーザユーザにににに自動的自動的自動的自動的にににに以下以下以下以下のののの権限権限権限権限がががが付与付与付与付与されるされるされるされる
• DATAACCESS と ACCESSCTRL
• 移行移行移行移行するするするするユーザーユーザーユーザーユーザーにににに自動的自動的自動的自動的ににににSECADM権限権限権限権限がががが付与付与付与付与されるされるされるされる
• ただし、SECADM権限にUSERタイプのIDがいないとき
移行後は各ユーザー、グループの権限の妥当性をチェックする
必要に応じてSYSADMからDBADMなどの権限を明示的にREVOKEする
19 © 2009 ISE Corporation
(参考)テスト結果 ~移行パターン1~
NNNN
NNNN
YYYY
YYYY
YYYY
YYYY
YYYY
YYYY
YYYY
YYYY
YYYY
Instance Instance Instance Instance User User User User
YYYY
NNNN
NNNN
NNNN
NNNN
NNNN
NNNN
NNNN
NNNN
NNNN
NNNN
Security Security Security Security UserUserUserUser
QUIESCE_CONNECTQUIESCE_CONNECTQUIESCE_CONNECTQUIESCE_CONNECT
LOADLOADLOADLOAD
IMPLICIT_SCHEMAIMPLICIT_SCHEMAIMPLICIT_SCHEMAIMPLICIT_SCHEMA
DBADMDBADMDBADMDBADM
SECADMSECADMSECADMSECADM
LIBRARYLIBRARYLIBRARYLIBRARY
CREATE_NOT_FENCED_ROUTINECREATE_NOT_FENCED_ROUTINECREATE_NOT_FENCED_ROUTINECREATE_NOT_FENCED_ROUTINE
CREATE_EXTERNAL_ROUTINECREATE_EXTERNAL_ROUTINECREATE_EXTERNAL_ROUTINECREATE_EXTERNAL_ROUTINE
CREATETABCREATETABCREATETABCREATETAB
CONNECTCONNECTCONNECTCONNECT
BINDADDBINDADDBINDADDBINDADD
AUTHORITIESAUTHORITIESAUTHORITIESAUTHORITIES
NNNN
NNNN
NNNN
NNNN
NNNN
YYYY
NNNN
NNNN
NNNN
NNNN
NNNN
NNNN
NNNN
NNNN
NNNN
NNNN
Security Security Security Security UserUserUserUser
YYYYYYYYDATAACCESSDATAACCESSDATAACCESSDATAACCESS
YYYYYYYYACCESSCTRLACCESSCTRLACCESSCTRLACCESSCTRL
NNNNNNNNEXPLAINEXPLAINEXPLAINEXPLAIN
NNNNNNNNSQLADMSQLADMSQLADMSQLADM
NNNNNNNNWLMADMWLMADMWLMADMWLMADM
NNNNNNNNSECADMSECADMSECADMSECADM
NNNNNNNNLIBRARYLIBRARYLIBRARYLIBRARY
NNNNYYYYQUIESCE_CONNECTQUIESCE_CONNECTQUIESCE_CONNECTQUIESCE_CONNECT
NNNNYYYYIMPLICIT_SCHEMAIMPLICIT_SCHEMAIMPLICIT_SCHEMAIMPLICIT_SCHEMA
NNNNYYYYLOADLOADLOADLOAD
YYYYYYYYDBADMDBADMDBADMDBADM
NNNNYYYYCREATE_NOT_FENCED_ROUTINECREATE_NOT_FENCED_ROUTINECREATE_NOT_FENCED_ROUTINECREATE_NOT_FENCED_ROUTINE
NNNNYYYYCREATE_EXTERNAL_ROUTINECREATE_EXTERNAL_ROUTINECREATE_EXTERNAL_ROUTINECREATE_EXTERNAL_ROUTINE
NNNNYYYYCREATETABCREATETABCREATETABCREATETAB
NNNNYYYYCONNECTCONNECTCONNECTCONNECT
NNNNYYYYBINDADDBINDADDBINDADDBINDADD
SYSADMSYSADMSYSADMSYSADM_GROUP_GROUP_GROUP_GROUP
Instance Instance Instance Instance User User User User
AUTHORITIESAUTHORITIESAUTHORITIESAUTHORITIES V9.7V9.5
手順:instance user にて実行
1. db2iupgrade <instance user>
2. db2 upgrade database
自動的自動的自動的自動的にににに作成作成作成作成
必要に応じて権限を revoke
20 © 2009 ISE Corporation
(参考)テスト結果 ~移行パターン2~
YYYYQUIESCE_CONNECTQUIESCE_CONNECTQUIESCE_CONNECTQUIESCE_CONNECT
YYYYLOADLOADLOADLOAD
YYYYIMPLICIT_SCHEMAIMPLICIT_SCHEMAIMPLICIT_SCHEMAIMPLICIT_SCHEMA
YYYYDBADMDBADMDBADMDBADM
NNNNSECADMSECADMSECADMSECADM
NNNNLIBRARYLIBRARYLIBRARYLIBRARY
YYYYCREATE_NOT_FENCED_ROUTINECREATE_NOT_FENCED_ROUTINECREATE_NOT_FENCED_ROUTINECREATE_NOT_FENCED_ROUTINE
YYYYCREATE_EXTERNAL_ROUTINECREATE_EXTERNAL_ROUTINECREATE_EXTERNAL_ROUTINECREATE_EXTERNAL_ROUTINE
YYYYCREATETABCREATETABCREATETABCREATETAB
YYYYCONNECTCONNECTCONNECTCONNECT
YYYYBINDADDBINDADDBINDADDBINDADD
Instance Instance Instance Instance User User User User
AUTHORITIESAUTHORITIESAUTHORITIESAUTHORITIES
YYYYYYYYDATAACCESSDATAACCESSDATAACCESSDATAACCESS
YYYYYYYYACCESSCTRLACCESSCTRLACCESSCTRLACCESSCTRL
NNNNNNNNEXPLAINEXPLAINEXPLAINEXPLAIN
NNNNNNNNSQLADMSQLADMSQLADMSQLADM
NNNNNNNNWLMADMWLMADMWLMADMWLMADM
NNNNYYYYSECADMSECADMSECADMSECADM
NNNNNNNNLIBRARYLIBRARYLIBRARYLIBRARY
NNNNYYYYQUIESCE_CONNECTQUIESCE_CONNECTQUIESCE_CONNECTQUIESCE_CONNECT
NNNNYYYYIMPLICIT_SCHEMAIMPLICIT_SCHEMAIMPLICIT_SCHEMAIMPLICIT_SCHEMA
NNNNYYYYLOADLOADLOADLOAD
YYYYYYYYDBADMDBADMDBADMDBADM
NNNNYYYYCREATE_NOT_FENCED_ROUTINECREATE_NOT_FENCED_ROUTINECREATE_NOT_FENCED_ROUTINECREATE_NOT_FENCED_ROUTINE
NNNNYYYYCREATE_EXTERNAL_ROUTINECREATE_EXTERNAL_ROUTINECREATE_EXTERNAL_ROUTINECREATE_EXTERNAL_ROUTINE
NNNNYYYYCREATETABCREATETABCREATETABCREATETAB
NNNNYYYYCONNECTCONNECTCONNECTCONNECT
NNNNYYYYBINDADDBINDADDBINDADDBINDADD
SYSADMSYSADMSYSADMSYSADM_GROUP_GROUP_GROUP_GROUP
Instance Instance Instance Instance User User User User
AUTHORITIESAUTHORITIESAUTHORITIESAUTHORITIES V9.7V9.5
自動的自動的自動的自動的にににに作成作成作成作成
必要に応じて権限を revoke
手順:instance user にて実行
1. db2iupgrade <instance user>
2. db2 upgrade database
21 © 2009 ISE Corporation
ネットワーク機能強化ネットワーク機能強化
22 © 2009 ISE Corporation
ネットワークを流れるデータのセキュリティー強化
• AES暗号化暗号化暗号化暗号化 256bit アルゴリズムアルゴリズムアルゴリズムアルゴリズムををををサポートサポートサポートサポート
• SSL通信通信通信通信のののの設定設定設定設定をををを簡易化簡易化簡易化簡易化
23 © 2009 ISE Corporation
AES暗号化の設定
• AUTHENTICATIONパラメータパラメータパラメータパラメータががががSERVER_ENCRYPTのののの場合場合場合場合
• ユーザーID、パスワードを暗号化する
• 暗号化方法暗号化方法暗号化方法暗号化方法はははは ALTERNATE_AUTH_ENC DBM構成構成構成構成パラメータパラメータパラメータパラメータでででで設定設定設定設定
• 以前の DB2_SERVER_ENCALG は非推奨
• ALTERNATE_AUTH_ENC
• NOT_SPECIFIED(デフォルト)
• クライアントの暗号化アルゴリズムをサーバーが受け入れる
• AES_CMP
• クライアントがAESをサポートする場合、サーバーはAESで交渉
• クライアントがAESをサポートしない場合、DESで接続
• AES_ONLY
• サーバーはAESのみ受け入れる
• クライアントがAESをサポートしない場合、接続は拒否される
NEW!
24 © 2009 ISE Corporation
SSLクライアントサポートの拡張と構成の簡易化
• すべてのすべてのすべてのすべての non-Java DB2 クライアントクライアントクライアントクライアントををををサポートサポートサポートサポート
• CLI/ODBC Client
• .Net Data Provider
• Embedded SQL
• CLP
• SSL設定設定設定設定ががががDBM CFGでででで可能可能可能可能
• 今までは SSLconfig.ini と SSLClientconfig.ini に設定
• 移行時は自動的に DBM CFG に設定される
25 © 2009 ISE Corporation
サーバー側での SSL 設定項目(DBM CFG)
• 新新新新しいしいしいしいパラメーターパラメーターパラメーターパラメーター
• SSL_SVR_KEYDB ::::Keystore DBファイル名(絶対パス)
• SSL_SVR_STASH ::::Stashファイル名(絶対パス)
• SSL_SVR_LABEL :デジタル署名のラベル
• SSL_SVCENAME ::::SSL ポート
オプション
• SSL_CIPHERSPECS ::::cipher suitesの暗号化方法
• SSL_VERSIONS ::::SSL と TLS バージョン
26 © 2009 ISE Corporation
クライアント側での SSL 設定項目
• DBM CFG 新新新新しいしいしいしいパラメーターパラメーターパラメーターパラメーター
• SSL_CLNT_KEYDB :Keystore DBファイル名(絶対パス)
• SSL_CLNT_STASH :Stashファイル名(絶対パス)
• CLI/ODBC用用用用のののの新新新新しいしいしいしいパラメーターパラメーターパラメーターパラメーター
• ssl_client_keystoredb : Keystore DBファイル名(絶対パス)
• ssl_client_keystash : Stashファイル名(絶対パス)
• DB2 .Net Provider用用用用のののの新新新新しいしいしいしいパラメーターパラメーターパラメーターパラメーター
• SSLClientKeystoredb : Keystore DBファイル名(絶対パス)
• SSLClientKeystash : Stashファイル名(絶対パス)
• Security :SSL
27 © 2009 ISE Corporation
テスト ~SSL接続例~
SSL
1. SSLのサーバー Keystore DB を作成
2. サーバー鍵DBの stash file を作成
3. SSL証明書を抽出
4. DBM CFG設定
1. SSLのクライアント Keystore DB を作成
2. クライアント鍵DBの stash file を作成
3. サーバーのSSL証明書をインポート
4. DBM CFG設定
5. データベースカタログ
*stash file : Keystore DBの暗号化されたパスワードファイル
28 © 2009 ISE Corporation
テスト ~SSL設定:サーバー側 鍵と証明書の作成~
KeystoreKeystoreKeystoreKeystore DB DB DB DB のののの作成作成作成作成
$ gsk7capicmd -keydb -create -db SeverKey_cms.kdb -pw password -type cms -expire 365 –stash
自己証明書自己証明書自己証明書自己証明書のののの作成作成作成作成
$ gsk7capicmd -cert -create -db SeverKey_cms.kdb -pw password -label cmskeylabel-dn "CN=db2.ibm.com,O=IBM,C=JP" -expire 365 -ca true
証明書証明書証明書証明書のののの抽出抽出抽出抽出
$ gsk7capicmd -cert -extract -db SeverKey_cms.kdb -pw password -label cmskeylabel-target ServerCert.arm -format ascii
以下以下以下以下ののののファイルファイルファイルファイルがががが作成作成作成作成されるされるされるされる
$ ls –ltr-rw------- 1 yanav97 db2adm 80 May 29 10:07 SeverKey_cms.rdb-rw------- 1 yanav97 db2adm 80 May 29 10:07 SeverKey_cms.crl-rw------- 1 yanav97 db2adm 129 May 29 10:07 SeverKey_cms.sth ← stash file-rw------- 1 yanav97 db2adm 125080 May 29 10:07 SeverKey_cms.kdb ← keystore db-rw-r--r-- 1 yanav97 db2adm 729 May 29 10:07 ServerCert.arm ← certificate
証明書はClientに
送信する
29 © 2009 ISE Corporation
テスト ~SSL設定:サーバー側 DBの設定~
DBM CFGDBM CFGDBM CFGDBM CFGのののの設定設定設定設定
$ db2 update dbm cfg using SSL_SVR_KEYDB /home/yanav97/ServerKey_cms.kdb$ db2 update dbm cfg using SSL_SVR_STASH /home/yanav97/SeverKey_cms.sth$ db2 update dbm cfg using SSL_SVR_LABEL cmskeylabel$ db2 update dbm cfg using SSL_SVCENAME 60138
$ db2 get dbm cfg | grep SSL
SSL server keydb file (SSL_SVR_KEYDB) = /home/yanav97/SeverKey_cms.kdbSSL server stash file (SSL_SVR_STASH) = /home/yanav97/SeverKey_cms.sthSSL server certificate label (SSL_SVR_LABEL) = cmskeylabelSSL service name (SSL_SVCENAME) = 60138SSL cipher specs (SSL_CIPHERSPECS) =SSL versions (SSL_VERSIONS) =SSL client keydb file (SSL_CLNT_KEYDB) =SSL client stash file (SSL_CLNT_STASH) =
証明書を作成したときに指定したラベル名
別途SSL用のportをあける (/etc/services)
30 © 2009 ISE Corporation
テスト ~SSL設定:クライアント側 鍵DBの作成~
ikeymanを使用
新規データベースを作成
31 © 2009 ISE Corporation
テスト ~SSL設定:クライアント側 Stashファイル作成~
CMSを選択
Keystore DBファイル名を指定
保存先ディレクトリを指定パスワードを設定
有効期限を設定
Stash file を作成
Stash file が作成される
32 © 2009 ISE Corporation
テスト ~SSL設定:クライアント側 証明書の追加~
新規CA証明書を追加
33 © 2009 ISE Corporation
テスト ~SSL設定:クライアント側 証明書の追加~ASCIIを選択
証明書ファイル名を指定
保存先ディレクトリを指定
ラベルを設定
証明書が追加された
34 © 2009 ISE Corporation
Note:
• ikeyman はははは、、、、DB2ににににバンドルバンドルバンドルバンドルされていますがされていますがされていますがされていますが、、、、Javaのみのみのみのみ対応対応対応対応((((CMSにににに対応対応対応対応していないしていないしていないしていない))))
• <DB2 install Dir>¥java¥jdk¥jre¥bin¥ikeyman.exe
• <instance home dir>/sqllib/java/jdk64/jre/bin/ikeyman
• MQににににバンドルバンドルバンドルバンドルされているされているされているされている ikeyman ははははCMSにににに対応対応対応対応
• <MQ install Dir>¥gskit¥jre¥bin
• ikeyman以外以外以外以外にもにもにもにも、、、、keytool、、、、gsk7capicmd ははははDB2ををををインストールインストールインストールインストールしていればしていればしていればしていれば使用可能使用可能使用可能使用可能
• keytool
• <DB2 install Dir>¥java¥jdk¥bin¥keytool
• <instance home dir>/sqllib/java/jdk64/jre/bin/keytool
• gsk7capicmd
• C:¥Program Files¥IBM¥gsk7¥bin¥gsk7capicmd
• gsk8capicmd_64
• <instance home dir>/sqllib/gskit/bin
35 © 2009 ISE Corporation
テスト ~SSL設定:クライアント側 DB設定~
DBM CFG DBM CFG DBM CFG DBM CFG 設定設定設定設定
C:¥> db2 update dbm cfg using SSL_CLNT_KEYDB C:¥temp¥ClientKey.kdbC:¥> db2 update dbm cfg using SSL_CLNT_STASH C:¥temp¥ClientKey.sth
C:¥>db2 get dbm cfg | find “SSL“SSL サーバー keydb ファイル (SSL_SVR_KEYDB) =SSL サーバー stash ファイル (SSL_SVR_STASH) =SSL サーバー証明書ラベル (SSL_SVR_LABEL) =SSL サービス名 (SSL_SVCENAME) =SSL 暗号仕様 (SSL_CIPHERSPECS) =SSL バージョン (SSL_VERSIONS) =SSL クライアント keydb ファイル (SSL_CLNT_KEYDB) = C:¥temp¥ClientKey.kdbSSL クライアント stash ファイル (SSL_CLNT_STASH) = C:¥temp¥ClientKey.sth
作成作成作成作成されるされるされるされるファイルファイルファイルファイル
C:¥temp> dir | find “Client”2009/05/29 10:22 80 ClientKey.crl2009/05/29 10:22 120,080 ClientKey.kdb ← keystore db2009/05/29 10:22 80 ClientKey.rdb2009/06/02 13:29 129 ClientKey.sth ← stash file
36 © 2009 ISE Corporation
テスト ~SSL設定:クライアント側 DBカタログ~
DBDBDBDBののののカタログカタログカタログカタログ
C:¥> db2 catalog tcpip node SSLNODE remote x.xxx.xxx.xx server 60138 security sslC:¥> db2 catalog db srcdb as SSLDB at node SSLNODE
C:¥>db2 list node directory
ノード名 = SSLNODEコメント =ディレクトリー項目タイプ = LOCALプロトコル = TCPIPホスト名 = x.xxx.xxx.xxサービス名 = 60138セキュリティー・タイプ = SSL
C:¥>db2 list db directory
データベース別名 = SSLDBデータベース名 = SRCDBノード名 = SSLNODEデータベース・リリース・レベル = d.00コメント =ディレクトリー項目タイプ = リモートカタログ・データベース・パーティション番号 = -1代替サーバー・ホスト名 =代替サーバーのポート番号 =
37 © 2009 ISE Corporation
テスト ~SSL接続~
C:¥>db2 connect to ssldb user yanav97 using xxxxx
データベース接続情報
データベース・サーバー = DB2/AIX64 9.7.0SQL 許可 ID = YANAV97ローカル・データベース別名 = SSLDB
gsk8sys.dllのライブラリーが見つからないとのエラーが出た場合は、PATHを設定
C:¥> set PATH=C:¥Program Files¥IBM¥gsk8¥lib; C:¥Program Files¥IBM¥gsk8¥bin;%PATH
38 © 2009 ISE Corporation
テスト~SSL通信確認~
“Client Hello”
SSLの最初のHandshake
※ wireshark を使用
39 © 2009 ISE Corporation
参考資料
• Technote::::Authorization errors due to changes to the SYSADM authority scope
• http://www-01.ibm.com/support/docview.wss?uid=swg21385801&myns=swgimgmt&mynp=OCSSEPGG&mync=E
• DB2インスタンスインスタンスインスタンスインスタンスののののSecure Socket Layer(SSL)サポートサポートサポートサポートのののの構成構成構成構成
• http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.admin.sec.doc/doc/t0025241.html
• DB2 technical tip: Set up Secure Sockets Layer (SSL) for DB2 on Windows
• http://www.ibm.com/developerworks/data/library/techarticle/dm-0806sogalad/index.html
• SSL のののの入門入門入門入門およびおよびおよびおよびikeymanユーザーズユーザーズユーザーズユーザーズ・・・・ガイドガイドガイドガイド
• http://publib.boulder.ibm.com/tividd/td/ITAME/SC32-1363-00/ja_JA/PDF/ss7aumst.pdf
• GSK7c_CapiCmd_UserGuide
• ftp://ftp.software.ibm.com/software/webserver/appserv/library/v61/ihs/GSK7c_CapiCmd_UserGuide.pdf
• keytool
• http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/tooldocs/solaris/keytool.html
• SSL Return Codes
• http://publib.boulder.ibm.com/infocenter/tsminfo/v6/index.jsp?topic=/com.ibm.itsm.tshoot.doc/r_pdg_retcodes.html
• Wireshark
• http://www.wireshark.org/
40 © 2009 ISE Corporation
ブランクブランクブランクブランク・・・・ページページページページ