AWS Service Catalog

組織が承認した CloudFormation テンプレートをカタログとして管理し、エンドユーザーにセルフサービスでのリソースプロビジョニングを提供するガバナンスサービス

概要

AWS Service Catalog は、IT 管理者が承認済みのインフラストラクチャ構成をプロダクトとして登録し、エンドユーザーがセルフサービスでプロビジョニングできる仕組みを提供します。CloudFormation テンプレートや Terraform 構成をプロダクトとしてカタログ化し、ポートフォリオ単位でアクセス権限を管理します。エンドユーザーは CloudFormation の知識がなくても、パラメータを入力するだけで承認済みの構成をデプロイできます。制約 (Constraints) により、インスタンスタイプの制限やリージョンの限定など、ガバナンスルールをプロダクトレベルで強制できます。

ポートフォリオとプロダクトの設計

Service Catalog の中核概念はポートフォリオとプロダクトの 2 層構造です。ポートフォリオはプロダクトの論理的なグループで、IAM プリンシパル (ユーザー、グループ、ロール) に対するアクセス権限の単位になります。たとえば「データ分析チーム用ポートフォリオ」に Redshift クラスター、Glue ジョブ、S3 バケットのプロダクトを含め、データチームのみに共有します。プロダクトは CloudFormation テンプレートまたは Terraform 構成をバージョン管理したもので、テンプレートのパラメータがエンドユーザーへの入力項目になります。プロダクトのバージョニングにより、テンプレートの更新を段階的にロールアウトできます。古いバージョンでプロビジョニングされた既存環境はそのまま動作し、ユーザーが明示的にバージョンアップを実行するまで影響を受けません。プロダクト設計のベストプラクティスとして、パラメータ数を最小限に抑え、デフォルト値と AllowedValues で選択肢を絞ることが重要です。エンドユーザーが判断に迷わないよう、CIDR ブロックの直接入力ではなく「小規模/中規模/大規模」のような抽象化されたパラメータを提供します。

制約とプロビジョニングルール

制約 (Constraints) は、プロダクトのプロビジョニング時に適用されるガバナンスルールです。テンプレート制約は CloudFormation パラメータの許容値を制限し、たとえばインスタンスタイプを t3.micro と t3.small のみに限定できます。起動制約 (Launch Constraint) は、プロビジョニング時に使用する IAM ロールを指定します。エンドユーザー自身に CloudFormation の実行権限を付与する必要がなく、起動ロールに必要最小限の権限を集約できるため、最小権限の原則を実現しやすくなります。通知制約は、プロビジョニングイベントを SNS トピックに送信し、管理者への通知や監査ログの記録に利用します。スタックセット制約を使えば、1 つのプロダクトを複数のリージョンやアカウントに同時展開できます。TagOption は後述しますが、プロビジョニングされるリソースに強制的にタグを付与する仕組みです。制約の組み合わせにより、エンドユーザーの自由度を適切に制御しつつ、セルフサービスの利便性を維持するバランスを設計します。過度に制約を厳しくするとセルフサービスの意味が薄れ、緩すぎるとガバナンスが機能しません。

TagOption と Organizations 統合

TagOption は、Service Catalog でプロビジョニングされるリソースにタグを強制付与する機能です。ポートフォリオまたはプロダクトに TagOption を関連付けると、エンドユーザーがプロビジョニングする際にそのタグが自動的に適用されます。コスト配分タグ (CostCenter、Project、Environment) を TagOption で強制することで、タグ付け漏れによるコスト追跡の欠落を防止します。TagOption のキーと値のペアは管理者が一元管理し、エンドユーザーは値の選択肢から選ぶだけです。Organizations との統合により、Service Catalog のポートフォリオを組織内の複数アカウントに一括共有できます。管理アカウントまたは委任管理者アカウントでポートフォリオを作成し、OU (組織単位) やアカウント単位で共有先を指定します。共有されたポートフォリオはメンバーアカウントにインポートされ、ローカルのポートフォリオと同様に利用できます。この仕組みにより、中央の IT チームが承認済みの構成を全社に配布し、各チームはセルフサービスで必要なリソースをプロビジョニングするハブ&スポーク型のガバナンスモデルを実現します。Control Tower との連携で、アカウント作成時に標準ポートフォリオを自動配布する運用も可能です。

共有するXB!