2014年6月21日土曜日

SoftLayer のユーザ管理

SoftLayer のユーザ設計を行うためのネタとなる投稿にしようと思います。
永遠に未完成の投稿ということで、気の向くままに更新することにさせていただきます。

https://control.softlayer.com/
こちらにログインして得た情報、試してみたこと、試そうとしていることをまとめていきます。

とりあえず、資料を作ってみました。
https://raw.githubusercontent.com/pcserver-jp/SoftLayer/master/SoftLayer-user.xlsx

項番1~14は、[Account]-[Users] をいじってみて、ユーザ設計に関するパラメータとして重要だと思われるものをピックアップしてみました。
項番15~は、ユーザの一覧の一番右に表示される [Actions] から [Edit Portal Access] を選んだ時にオン・オフ編集可能となる Permissions の項目をそのまま一覧に転記したものになります。

列について、左から説明すると、最初に項番、分類を入れました。
次に権限名や設定項目名を入れてあります。
次の説明欄には、とりうる値や、英語で書かれた説明文を入れました。気が向いたら説明部分は日本語に直そうかと考えています。日本語訳も追記しました(2014/06/25)。
次の3項目は、クイック設定用に SoftLayer が用意している Permissions のひな形といった趣です。残念ながら、イマイチな設定候補だと思っています。どの権限がオン(○)・オフ(×)となっているか記載しています。
次の列は、最初の、親となるユーザの設定を入れてあります。特殊なユーザです。
次の列からは、追加ユーザとして足してみようと考えているものが並んでいます。
追加ユーザの名前については、残念ながら、全世界の SoftLayer 内で一意である必要があるみたいです。AWS では、管理用画面へのアクセス用 URL を親となるユーザとは別にすることで、親となるユーザの配下で一意となればよいことになっています。

概要はここまでにして、個別に詳しく見ていくことにします。

最初の親となるユーザについて述べたいと思います。
SL という接頭語と6ケタの数字でユーザ名が構成されています。ユーザが100万人を超えたらどうなるのだろう、と思わず心配してしまいました。SL で始まり、数字で終わる文字列が予約されているようなので、7ケタになるのだと思われます。
このユーザは万能のユーザで、しっかりと管理する必要があります。
一番シンプルなユーザ設計は、全ての操作をこのユーザでやってしまうことです。
個人で操作するのであれば、それもありだと思いますが、まったくセキュアではないです。

組織で操作するのであれば、操作する人ごとにユーザを作成すべきかと考えます。
更に、管理画面へのログイン用アカウント、VPN 接続用アカウント、API 発行用アカウントも操作する人ごとにユーザ作成してもよいのではないか、と考えます。API 発行用アカウントは、人ごとではなく、サーバごととか、OSのアカウント毎とか、プログラム(機能)ごとといったことも考えられます。
ベストプラクティスはこれだ、と断言できれば楽ですが、顧客ごとに要望が異なるものと思われます。
とにかく、日常の操作で、最初の親となるユーザを利用しなくて済むように工夫すべきだと考えています。

1. Status
4つの状態をとり得ます。Disabled な状態と Inactive な状態がどう異なるのかよくわかりません。そのうち調べてみようかなと考えています。
VPN Only という状態にすると、管理画面にログインできなくなります。API の実行も出来なくなるのではないか、と考えていますが未検証です。VPN 接続ができるようになるという意味合いはありません。VPN 接続以外の権能が無効になる、ということだと思われます。

VPN 接続のための専用ユーザを用意するというのは、セキュリティ面からみて、とても有用だと考えています。

作り方のポイントをまとめます。
・Status を VPN Only に変更します。
・Profile にて VPN Password を設定します。必須です。
・Permissions にて、項番61. SSL VPN Allowed をオンにします。必須です。これ以外の権限は不要です。
・項番3. Device Access の値が No Permission になっていることを確認します。
・ユーザの一覧の一番右に表示される [Actions] から [Edit VPN Access] を選び、VPN Type にて SSL, PPTP, SSL & PPTP のいずれかに変更します。必須です。
・VPN 接続はできるのに通信ができない、という場合は、Subnet Access の値を変更して Save し、値を元に戻して Save してみます。項番3. で個別のサーバを選んでみる、という解決案も見受けられましたが、私が試した範囲では無関係でした。

なお、VPN 接続後に Subnet が追加された場合、Subnet Access の値が Auto であっても、VPN 接続をやり直さない限り反映されません。

1つのユーザが1つのグローバル IP アドレスをソースアドレスとして1つの VPN 拠点に接続する場合、あとから接続した方のみが VPN 接続を継続できる仕様となっているようです。先に接続したセッションは切断されてしまいます。
別の VPN 拠点に接続してみると、両立しました。
別のグローバル IP アドレスをソースアドレスとして接続してみた場合については未検証です。このケースの挙動は知っておく必要があると考えています。
当然ですが、別のユーザが1つのグローバル IP アドレスをソースアドレスとして1つの VPN 拠点に接続する場合、両立しました。VPN 接続拠点ごとに決まった範囲の24ビットマスクのプライベート IP アドレスが振られるので、250接続くらいはいけるのではないかと思いますが未検証です。

2. Email Address
ユーザに紐づく Email アドレスを指定します。

3. Device Access
ユーザの一覧に表示される値と設定画面で選択する値の相関関係が理解できません。が、気にしないことにします。
Device というのは、SoftLayer で発注して利用しているサーバを指します。細かく分類できますが、おおざっぱには、物理サーバと仮想サーバがあります。
None を選択し、当該ユーザの Access 対象サーバを個別指定することもできます。
No Permission となっている場合は、他の値を選べません。項番22,23の権限を付与すると None に変わり、[Device Access] の [Quick Access] にて、他の値へ変更することができるようになります。

最初の親となるユーザを、どのような要件に基づいて用意するか、考える必要があります。
1法人1ユーザとするのか、1案件1ユーザとするのか、案件内であっても、本番環境とステージング環境、開発環境といった環境ごとに1ユーザとするのか、1つの環境内であっても、DR (Disaster Recovery)設計も考慮して、データセンタ毎に1ユーザとするのか、あまり細かく分けすぎると管理も大変になります。誤操作時の影響範囲を少なくするという意味では細かく分けることに意味もあります。

子となるユーザを作成し、子ユーザごとに Access 対象となるサーバが異なる、というのは非常に管理しづらいと思います。1法人1ユーザという縛りがある場合には、それなりに有用な設計なのかもしれませんが、アンチパターンだと考えます。

また、仮想サーバと物理サーバのどちらかしか管理しないユーザというものがどれだけ有用なのかよくわかりません。API 発行時には、意味のある分類なのかのしれませんが。

操作上の注意点として、項番15~を変更した場合、None に戻ってしまうように見受けられます。

4. When new devices are added
前項で None 以外を選んだ場合、以降に追加されるサーバを自動的に Access 対象とするかどうかを設定します。

5. User Editable?
Profile の値をユーザ自身が変更できるかどうかを設定しているのだと思われます。
この設定の有無で、どのフィールドについて変更可能と変更不能という差異が生じるのか未確認です。
User Editable にしなくても、少なくとも、ユーザプロファイル編集画面の情報はほぼ全て変更可能のようです。
項番6.や項番13.でソース IP アドレスを指定していても、本人が任意のアドレスを追加したり削除したりが可能なので、セキュアな設計を目指すのであれば設定変更を厳密に監視する必要が出てくるものと思われます。
まだ試していませんが、API Key を発行すると、API 経由でも変更が可能と思われます。ポータル画面は、裏側で API を呼んでいるだけだからです。厳密に、同じことができるようになっているかどうかは確認できませんが、ポータルにログインできなくても、API を発行できる状況にあれば、プロファイル画面の情報はほぼ全て変更可能になる、ということを前提に、ユーザ設計を行う必要があります。
パスワードと秘密の質問だけが編集可能、という仕様にしてほしかったところです。

6. Restrict Access to IP
管理画面にログイン可能なソース IP アドレスを制限できるものと思われます。
VPN 接続のソース IP アドレスを制限するものではありません。
複数指定できるみたいです。コンマ区切りです。効果は未検証です。

10.0.0.0/8 のような入力もできました。この場合、https://control.softlayer.com/ にてログインしようとしても、「Unauthorized IP Address!」 というエラーが発生してログインできなくなります。VPN 接続したり、SoftLayer で用意したサーバから https://control.service.softlayer.com/ にてログインしたら接続できました。最初の親となるユーザが別のアカウントにより VPN 接続した状態で、ログインできるかどうかは未検証です。おそらくできると思うので、10.0.0.0/8 という制限ではまだ緩すぎると思います。

最初の親となるユーザや、大きな権限を持たせているユーザについては、この項目は必須設定と考えておくのがセキュアでよいと思います。
GUI 踏み台を用意する場合、GUI 踏み台からのみログイン可能にする、GUI 踏み台へのログインは VPN 接続でのみ可能にする、といった設計もよいのではないかと考えています。

7. Expire Password In
パスワードの有効期限を設定します。
Portal Password の有効期限のみを設定するのか、VPN Password の有効期限にもなるのか未検証です。

8. Parent User
親ユーザを指定します。指定された親ユーザからは、[Account]-[Users] で一覧表示した場合に孫も含めて現れます。
親子関係を指定できるわけですが、子は常に親よりも権限が少なくなる、という関係性があるのかどうか、項番78. Add New User 権限がある場合に、ユーザ新規作成時に限り自分がもつ権限以内のユーザを作り出せる、という関係にあるのか、このあたりの事情を検証したいと考えています。

9. Require Security Questions?
管理画面にログインする際に、パスワード認証の後で、質問を選んでその回答を入力する必要があるかどうかを設定します。VPN 接続には無関係であることを確認しています。
セキュリティ強化策として、設定することをお勧めします。
回答を日本語で設定することができました。
回答を設定できるのはそのユーザのみで、回答を設定するまではパスワード認証のみでログオンできます。管理者がユーザに対して強制する手段がないように見受けられます。

10. VPN Access
ユーザの一覧の一番右に表示される [Actions] から [Edit VPN Access] を選んで設定します。

11. Subnet Access
VPN 接続でアクセスできる Subnet を設定することができます。
ユーザごとにアクセスできる Subnet を限定する役割を果たせるのではないかと考えていますが未検証です。
踏み台が存在する Subnet のみに限定するという使い方がよいのではないか、と思っているところです。

12. API Key
こちらを Generate すると、API を実行することができるようになります。

13. Allowed IPs
こちらを設定すると、API を実行することができる端末を制限することができるようになると考えています。未検証です。

14. External Authentication
外部認証を追加することができます。有料サービスです。
近いうちに検証したいと考えています。

15. ~ Permissions

ここからは、権限の一覧となります。
管理ポータルにて表示される項目名、説明を英語表記のまま転記し、説明の日本語訳を記載しました。その後ろに、考えたこと、検証したことをコメントしていきたいと思います。

日本情報通信さんが、「はじめようSoftLayer」という連載を開始されました。
「第1回 SoftLayerとは(http://niccloud.niandc.ne.jp/?p=329)」で、ユーザに関する情報を記載されているので、参考にさせていただいています。引用させていただく場合は、「NI+C情報」と略記させていただきます。

15. ~ 21. Support

15. View Tickets
Provides this user the ability to view tickets.
チケットを閲覧できる。

16. Search Tickets
Provides this user the ability to search through previous tickets.
既存チケットを検索できる。

17. View Tickets by Hardware Access
This user may only access tickets with their assigned hardware attached to them.
割り当てられたハードウェアに紐づくチケットをアクセスできる。

NI+C情報では、accessを閲覧としています。

18. View Tickets by Virtual Server Access
This user may only access tickets with their assigned Virtual Server attached to them.
割り当てられた仮想サーバに紐づくチケットをアクセスできる。

NI+C情報では、accessを閲覧としています。

19. Add Tickets
Provides this user the ability to add support tickets.
サポート・チケットを発行できる。

20. Edit Tickets
Provides this user the ability to edit support tickets.
サポート・チケットを編集できる。

21. View All Tickets
Provides this user the ability to view all tickets regardless of which user the ticket is assigned to.
どのユーザに割り当てられているチケットであるかとは無関係に、すべてのチケットを閲覧できる。

22. ~ 34. Devices

22. View Hardware Details
Provides this user the ability to see hardware information such as IP addresses, OS type, passwords, etc.. This also allows this user to update hardware passwords in the portal.
IPアドレス、OS種別、パスワードなどのハードウェア情報を閲覧できる。また、ポータル内でハードウェア・パスワードを更新できる。

23. View Virtual Server Details
Provides this user the ability to see Virtual Servers information such as IP addresses, OS type, passwords, etc.. This also allows this user to update Virtual Server passwords in the portal.
IPアドレス、OS種別、パスワードなどの仮想サーバ情報を閲覧できる。また、ポータル内の仮想サーバ・パスワードを更新することができる。

24. Hardware Firewall
Provides this user the ability to edit and view firewall logs and settings.
ファイアウォール・ログおよび設定の閲覧、設定変更ができる。

25. Manage Firewalls
Provides this user the ability to manage all firewall rules.
全てのファイアウォール・ルールを管理できる。

26. Software Firewall Manage
Software Firewall Manage.
ソフトウェア・ファイアウォールを管理できる。

27. Manage Load Balancers
Provides this user the ability to manage load balancers.
ロードバランサを管理できる。

28. Manage Port Control
Provides this user the ability to manage port status and speeds for connected devices.
デバイスにつながっているポートの状態、速度を管理できる。

29. Manage Device Monitoring
Provides this user the ability to view and edit monitoring information for devices.
デバイスの監視情報を閲覧、設定変更できる。

30. Reboot server and view IPMI system information
Provides this user the ability to see IPMI details regarding hardware and issue reboot commands through the portal.
ポータルにてハードウェアに関するIPMI情報を閲覧し、再起動を実行できる。

31. Upgrade Server
Upgrade Server.
サーバをアップグレードできる。

32. Edit Hostname/Domain
Provides this user the ability to edit hostname and domain name for a device.
デバイスのホスト名とドメイン名を編集できる。

33. Issue OS Reloads and Initiate Rescue Kernel
Provides this user the ability to issue OS reloads and Rescue Kernel for devices.
デバイスに対しOS Reload(再初期化)と、Rescue Kernelを実行できる。

34. Upgrade Port
Upgrade Port.
ポートをアップグレードできる。

35. ~ 42. Network

35. View Bandwidth Statistics
View bandwidth statistics and graphs to hardware.
ハードウェアの帯域統計とグラフを閲覧できる。

36. Add IP Addresses
Add IP Addresses to a server.
サーバへIPアドレスを追加できる。

37. Manage E-mail Delivery Service
Provides this user the ability to manage e-mail delivery service accounts.
e-mail配信サービス・アカウントを管理できる。

38. VPN Administration
Provides this user the ability to manage VPN access for ALL users.
全ユーザーのVPNアクセスを管理できる。

39. Manage Network Subnet Routes
Provides this user the ability to manage network subnet routes.
ネットワーク・サブネット経路を管理できる。

40. Manage Network VLAN Spanning
Provides this user the ability to enable and disable private network vlan spanning.
プライベート・ネットワークVLANスパニングを有効化・無効化できる。

41. Manage IPSEC Network Tunnels
Provides this user the ability to manage IPSEC network tunnels.
IPsecネットワーク・トンネルを管理できる。

42. Manage Network Gateways
Provides this user the ability to manage network gateway appliances.
ゲートウェイ・アプライアンスを管理できる。

43. Security

43. Request Compliance Report
Provides this user the ability to request compliance reports.
コンプライアンスレポートを要求できる。

44. ~ 68. Services

44. View CDN Bandwidth Statistics
Provides this user the ability to view content delivery network bandwidth statistics.
CDN帯域統計を閲覧できる。

45. View Licenses
View all licenses associated with this account.
アカウントに紐づくすべてのライセンスを閲覧できる。

46. Manage DNS, Reverse DNS, WHOIS and Swip
Provides this user the ability to add, edit, and view DNS records managed by SoftLayer.
SoftLayerで管理しているDNSレコードを追加、変更、閲覧できる。

47. Antivirus/Spyware
Provides this user the ability to view and edit antivirus / spyware logs and settings.
アンチウィルス、スパイウェアのログ、設定を閲覧、変更できる。

48. Network IDS
Coming Soon!

49. Host IDS
Provides this user the ability to view Host IDS logs.
ホストIDSログを閲覧できる。

50. Vulnerability Scanning
Provides this user the ability to request and view Vulnerability Scans.
脆弱性スキャン実施、結果閲覧できる。

51. Manage CDN Account
Provides this user the ability to manage content delivery network account.
CDNアカウントを管理できる。

52. Manage CDN File Transfers
Provides this user the ability to manage content delivery network file transfers.
CDNファイル転送を管理できる。

53. View cPanel
View login information for cPanel.
cPanelへのログイン情報を閲覧できる。

NI+C情報では、ログインして操作できる、としています。

54. View Plesk
View login information for Plesk.
Pleskへのログイン情報を閲覧できる。

NI+C情報では、ログインして操作できる、としています。

55. View Helm
View login information for Helm.
Helmへのログイン情報を閲覧できる。

NI+C情報では、ログインして操作できる、としています。

56. View Urchin
View login information for Urchin.
Urchinへのログイン情報を閲覧できる。

NI+C情報では、ログインして操作できる、としています。

57. Manage Message Queue
Manage Message Queue service.
メッセージキュー・サービスを管理できる。

58. Manage Provisioning Scripts
Manage Provisioning Scripts.
プロビジョニング・スクリプトを管理できる。

59. View QuantaStor
View login information for QuantaStor.
QuantaStorへのログイン情報を閲覧できる。

NI+C情報では、ログインして操作できる、としています。

60. Manage Public Images
Provides this user the ability to publish Public Image Templates.
パブリック・イメージ・テンプレートを作成できる。

61. SSL VPN Allowed
SSL VPN Allowed.
SSL VPNを利用できる。

62. Manage Security
Manage Security.
セキュリティを管理できる。

63. View Certificates (SSL)
Allows the user to view certificates (includes the private key).
(秘密鍵を含む)認証情報を閲覧できる。

64. Manage Certificates (SSL)
Allows the user to add, remove, and update certificates (includes the private key).
(秘密鍵を含む)認証情報を追加、削除、更新できる。

65. Manage SSH Keys
Allows the user to add, remove, and update SSH keys.
SSH鍵を追加、削除、更新できる。

66. Upgrade Services
Upgrade Services.
サービスをアップグレードできる。

67. Lockbox Manage
Provides this user the ability to view ALL lockbox details and edit lockbox passwords.
全ロックボックスの詳細情報閲覧、パスワード編集ができる。

68. Manage Storage
Provides this user the ability to view Storage details and edit Storage passwords.
ストレージ詳細情報閲覧、パスワード編集ができる。

ストレージの注文はできないようです。項番80.の権限が必要みたいです。それ以外のストレージ管理は一通りできそうな気がしています。
iSCSI Storage に絞って話を進めると、スナップショットを取得削除できました。Enable化することもできました。リストアもできました。スナップショット・スケジュールの追加削除、有効化無効化もできました。レプリケーションのイベント参照もできました。レプリケーションのフェイルオーバもできました。新しく iSCSI Storage を注文したり、スナップショット用のスペースを注文したり、レプリケーションを注文することはできませんでした。
バックアップスクリプト作成を考えた場合、この権限のみを与え API Key を発行すれば十分です。


69. ~ 85. Account

69. View Account Summary
Provides the ability for this user to view the account summary page including invoices and payments.
請求と決済を含む口座概要ページを閲覧できる。

70. Manage Notification Subscribers
Provides this user the ability to create and manage notification subscribers for usage warnings and overages.
使用警告と利用上限超過警告通知を受けるユーザー作成、管理ができる。

71. Forum Access
Forum Access.
Forumへアクセスできる。

72. Add/Upgrade Cloud Instances
Upgrade / Add Cloud Computing Instance.
仮想サーバを作成、アップグレードできる。

73. Update Payment Details
Provides the ability for this user to update the recurring monthly payment information.
毎月の決済情報を更新できる。

74. Cancel Server
Ability to cancel any server(s) on this account.
サーバを解約できる。

75. Cancel Services
Ability to cancel any services on this account.
サービスを解約できる。

76. Datacenter Access
Provides this user the permission to physically enter a datacenter.
物理的にデータセンターへ入館できる。

77. View Event Log
Provides the ability for this user to view the account-wide event log history.
アカウントにまたがるイベントログを閲覧できる。

78. Add New User
Provides the ability for the user to add new user and assign permissions.
新ユーザを作成し、権限付与できる。

79. Reset Password
Provides the ability for the user to reset the portal login password.
ユーザーの管理ポータル・ログイン・パスワードをリセットできる。

80. Add Storage
Upgrade / Add Storage.
ストレージ追加、アップグレードできる。

81. Edit Company Profile
Provides the ability for this user to modify the account / company profile associated with this account.
アカウント情報、会社情報を変更できる。

82. Submit One-time Payments
Provides the ability for this user to submit one time payments for this account.
一時金支払いを実施できる。

83. Add/Upgrade Services
Upgrade / Add Services.
サービス追加、アップグレードできる。

84. Add Server
Provides the ability to add new servers to the account.
アカウントにサーバ追加できる。

85. Datacenter Room Access
Provides this user the permission to physically enter a customer's colo cage.
物理的に、顧客のコロケージへ入ることができる。

0 件のコメント:

コメントを投稿