5. HELM ユーザー用パッケージ¶
ユーザーが kubernetes インフラ環境を構築するために、以下のパッケージを提供します。 これらのパッケージは Application Operator を経由してユーザー自身がアプリケーションを構成するために利用します。
5.1. Application マニフェスト¶
Application Operator でアプリケーションを構成するために、 Application
マニフェストを利用します。
apiVersion: managed.msp.sbopsv/v1alpha1
kind: Application
metadata:
name: kanboard
namespace: staging
spec:
chart:
name: basic-deployment
version: <latest>
settings:
5.1.1. パッケージ一覧¶
カテゴリ |
パッケージ |
概要 |
---|---|---|
アプリケーション |
ステートレスな Docker イメージをホストする機能を提供する。 本パッケージは、コンテナの配置だけではなく、Secret の作成とマウント、ネットワーク設定等 アプリケーションの公開に必要な設定と、 運用に必要な BlueGreen Deploy 設定等のリソースを作成する。 |
|
任意の Docker image 及びコマンドを指定し、定期実行Jobを登録する。 |
||
データ |
マネージド RDB のインスタンス作成からDB設定までの機能を提供する。 |
|
マネージド Object bucket ストレージの作成及び設定の機能を提供する。 |
||
マネージド コンテナレジストリーの作成及び設定の機能を提供する。 |
||
マネージドの非同期メッセージングサービス設定を行う機能を提供する。 |
||
AWS Auroraの作成・設定を行う機能を提供する。 |
||
ネットワーク |
マネージド DNS のレコード管理機能を提供する。 |
|
Gatewayの作成・設定を行う機能を提供する。 |
||
パブリックIPの作成を行う機能を提供する。 |
||
セキュリティ |
マネージド KMS 設定機能を提供する。 本パッケージではデフォルト KMS コンテナの作成のため、管理用パッケージとしても利用する。 |
5.2. IAM 管理用 マニフェスト¶
本マニフェストは、AWS における IAM 関連クラウドリソースを一元管理するためのものです。
5.2.1. パッケージ一覧¶
Kind |
パッケージ |
概要 |
---|---|---|
IamGroup |
IAM Group管理機能を提供する。 |
|
IamUser |
IAM User管理機能を提供する。 |
|
IamRole |
IAM Role管理機能を提供する。 |
|
IamK8sAccess |
Kubernetes リソースへのアクセス権限をIAMリソースに付与する機能を提供する。 |
パッケージリファレンス
5.2.2. パッケージ構成と関係図¶
以下の図は、各パッケージ間の構成および連携関係を示しています。
5.2.3. ユースケース1 : IAM ユーザーのkubectl アクセス制限¶
本ユースケースでは、以下の各パッケージを連携させることで、IAM ユーザーの kubectl アクセスを適切に制御します。
IamGroup および IamUser パッケージで、ユーザーおよびそのポリシーの管理を行います。
IamRole パッケージで、スイッチロール先となるロールとそのポリシーを管理します。
IamK8sAccess パッケージで、IAM ロールに対して Kubernetes リソースへのアクセス権限を付与します。
5.2.4. ユースケース2 : GitHub ActionとのOIDC連携¶
本ユースケースでは、IamRole パッケージを利用し、特定の GitHub リポジトリからの Actions によるアクセスを許可する IAM ロールを作成します。 これにより、クレデンシャル情報を管理することなく、GitHub Actions を介して安全に AWS リソースへのアクセスが実現できます。
前提条件¶
本機能を活用するためには、以下の ID プロバイダーリソースが事前に作成され、適切に設定されている必要があります。
GitHub Actions 用 OpenID Connect プロバイダー : token.actions.githubusercontent.com をエンドポイントとする IAM ID プロバイダーリソース
以上の各マニフェストを活用することで、IAM 関連リソースの管理が効率化され、セキュアな運用が実現されます。