プロビジョニングとは?サーバーやアカウントを使える状態に準備する作業

システム開発・テクノロジー
プロビジョニングとは?ざっくりと3行で
  • サーバー・ネットワーク・ストレージ・ユーザーアカウントなどのITリソースを必要な設定を施して「使える状態」に準備・提供する作業・プロセスのこと
  • クラウドコンピューティングの普及によりインフラのプロビジョニングをコードで定義して自動化するIaC(Infrastructure as Code)が標準的なアプローチになっている
  • サーバープロビジョニング・ネットワークプロビジョニング・ユーザープロビジョニング・クラウドプロビジョニングなど対象によって種類があり、手動・自動・セルフサービスの3つの方式がある

【深掘り】これだけ知ってればOK!

プロビジョニングの種類を整理しよう。サーバープロビジョニング:OSインストール・ミドルウェアのセットアップ・設定ファイルの適用・セキュリティ設定。ネットワークプロビジョニング:ルーター・スイッチの設定・VLANの構成・ファイアウォールルールの設定。ユーザープロビジョニング:Active DirectoryやIDaaSにユーザーアカウントを作成してSaaSアプリへのアクセス権限を付与する。クラウドプロビジョニング:AWS・Azure・GCPでのVPC・EC2・RDSなどのリソース作成と設定。

Infrastructure as Code(IaC)によるプロビジョニングの自動化が現代の標準だ。Terraform:HCL(HashiCorp Configuration Language)でインフラをコードで定義してAWS・Azure・GCP・オンプレミスを統一的に管理できる。AWS CloudFormation:AWSリソースをYAML/JSONテンプレートで定義。Ansible:べき等なPlaybookでサーバーの設定・ソフトウェアインストールを自動化。

ユーザープロビジョニングの自動化としてSCIM(System for Cross-domain Identity Management)がある。HRシステム(入社・異動・退職情報)とIDaaS(Okta・Azure AD)を連携して、新入社員が入社した瞬間に自動的に全社のSaaSアプリへのアクセスが付与される「ジャストインタイム・プロビジョニング」を実現できる。

プロビジョニングとデプロビジョニング(de-provisioning)はセットで考えることが重要だ。デプロビジョニングとは不要になったリソース・アカウントを削除・無効化することだ。退職者のアカウントが削除されずに残るとセキュリティリスクになる。入退社・異動の際のユーザーアカウントのプロビジョニング・デプロビジョニングの自動化は情報セキュリティマネジメントの重要な課題だ。

クラウドのプロビジョニングではゼロタッチプロビジョニング(ZTP)という概念もある。ルーター・スイッチ・サーバーを工場から届いた状態でネットワークに接続すると自動的に設定が適用されて使える状態になる仕組みで、大規模なインフラの展開・更新を人手なしで行える。

よくある誤解

プロビジョニング=サーバーのインストール作業だと思っている

サーバーのセットアップはプロビジョニングの一部に過ぎない。ユーザーアカウントの作成・権限付与・ネットワーク設定・クラウドリソースの作成など幅広いITリソースを使える状態にする作業全般がプロビジョニングだ。

クラウドではプロビジョニングは不要だと思っている

クラウドではコンソール操作やAPIで簡単にリソースを作成できるが、それもプロビジョニングの一形態だ。むしろクラウド環境ではTerraformやCloudFormationによる自動化・コード化によって大規模なプロビジョニングの管理が重要になっている。

会話での使われ方

ITKAGYO運営者デプロイ太郎のアイコン画像

新しいECサイトのインフラをTerraformでプロビジョニングします。AWS VPC・EC2・RDS・S3の作成と設定を全てコードで管理します。

インフラエンジニアがIaCを使ったクラウドプロビジョニングの方針をチームに説明している場面。

ITKAGYO運営者デプロイ太郎のアイコン画像

入社した社員のアカウントプロビジョニングが手動で時間がかかっています。SCIMでHRシステムとOktaを連携して自動化しましょう。

IT管理者がユーザープロビジョニングの自動化を提案している場面。

ITKAGYO運営者デプロイ太郎のアイコン画像

退職者のアカウントが無効化されていないケースがあります。デプロビジョニングのプロセスをHRシステムと連携して自動化してください。

情報セキュリティ担当者がアカウントのデプロビジョニングの自動化を指示している場面。

【まとめ】3つのポイント

  • ITリソースを必要な設定を施して使える状態に準備・提供する作業全般:サーバー・ネットワーク・ユーザーアカウント・クラウドリソースなどITの全領域にわたるプロビジョニングを自動化することでミスなく迅速なインフラ展開が実現する
  • IaCでインフラをコード化して再現性・バージョン管理・自動化を実現:TerraformやCloudFormationでインフラをコードで定義することでGitによるバージョン管理・レビュー・CI/CDパイプラインへの統合が可能になり品質と速度を両立できる
  • プロビジョニングとデプロビジョニングをセットで自動化してセキュリティを担保:入社時のアカウント付与と退職時のアカウント削除をHRシステムとの連携で自動化することでアクセス権の過不足なし状態を維持して情報セキュリティの基本を担保する

よくある質問

Q
TerraformとAnsibleはどちらを使えばいいですか?
A

Terraformはインフラのリソース作成(VPC・EC2・DBなど)に向いています。AnsibleはサーバーのOS設定・ソフトウェアインストール・設定ファイルの管理に向いています。両者を組み合わせて使うことが多いです。

Q
ユーザープロビジョニングの自動化にはどんなツールがありますか?
A

Okta・Azure AD・Google WorkspaceなどのIDaaSをHRシステム(WorkDay・SAP・SmartHR)とSCIMで連携させる方法が一般的です。JumpCloud・OneLoginなどのIDaaSも同様の機能を提供しています。

Q
SCIMとは何ですか?
A

System for Cross-domain Identity Managementの略で、クラウドサービス間でのユーザーアカウント情報の同期を標準化したプロトコルです。HRシステムでユーザーを作成するとSCIM対応のSaaSに自動でアカウントが作成・削除されます。

Q
IaCとプロビジョニングはどう関係していますか?
A

IaC(Infrastructure as Code)はインフラのプロビジョニング作業をコードで定義・自動化する手法です。TerraformやCloudFormationのコードがプロビジョニング作業を自動的に実行します。

この用語と一緒に知っておきたい用語

用語 この記事との関連
アカウント アカウントとの関係を知ると全体像がつかみやすくなります。あるサービスを自分専用に使うために登録する、いわば会員証のような利用権、それがアカウントだ
リソース リソースとの関係を知ると全体像がつかみやすくなります。コンピューターを動かすための性能や、プロジェクトを進めるための人員・時間といった資源のこと!
サーバー サーバーを押さえると本記事の理解がさらに深まります。ネットワークを通じて情報やサービスを提供する側のコンピューターのこと。レストランで料理を運んでくれる給仕係(server)をイメージするとわかりやすいよ
Terraform 本記事のテーマと実務上セットで使われることが多い用語です。HashiCorpが開発したインフラの構成をHCL(HashiCorp Configuration Language)というコードで定義してAWS・Azure・GCPのリソースを自動作成・変更・削除するIaC(Infrastructure as Code)ツールだ
ネットワーク ネットワークは関連分野でよく登場する重要キーワードです。複数のコンピュータや機器を結び、互いにデータをやり取りできるようにした網、それがネットワークだ

【出典】参考URL

https://www.terraform.io/ :Terraform公式サイト
https://www.ansible.com/ :Ansible公式サイト
https://scim.cloud/ :SCIM標準の公式サイト

コメント

「IT用語、難しすぎて心が折れそう……」という方のための、ハードル低めな用語辞典です。

情報レベルは「基礎中の基礎」。会話を止めないためのエッセンスだけを抽出しています。分かりやすさを追求するあまり、時々例え話が暴走しているかもしれませんが、そこは「ほどよく」聞き流していただけると幸いです。
ほどよくIT用語辞典システム開発・テクノロジー
デプロイ太郎のSNSを見てみる!!