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. パッケージ一覧

カテゴリ

パッケージ

概要

アプリケーション

BASIC-DEPLOYMENT

ステートレスな Docker イメージをホストする機能を提供する。 本パッケージは、コンテナの配置だけではなく、Secret の作成とマウント、ネットワーク設定等 アプリケーションの公開に必要な設定と、 運用に必要な BlueGreen Deploy 設定等のリソースを作成する。

CRONJOB

任意の Docker image 及びコマンドを指定し、定期実行Jobを登録する。

データ

RDB

マネージド RDB のインスタンス作成からDB設定までの機能を提供する。

STORAGE

マネージド Object bucket ストレージの作成及び設定の機能を提供する。

CONTAINER-REGISTRY

マネージド コンテナレジストリーの作成及び設定の機能を提供する。

MESSAGING

マネージドの非同期メッセージングサービス設定を行う機能を提供する。

DB-AURORA

AWS Auroraの作成・設定を行う機能を提供する。

ネットワーク

DNS

マネージド DNS のレコード管理機能を提供する。

INGRESS

Gatewayの作成・設定を行う機能を提供する。

PUBLIC-IP

パブリックIPの作成を行う機能を提供する。

セキュリティ

VAULT

マネージド KMS 設定機能を提供する。 本パッケージではデフォルト KMS コンテナの作成のため、管理用パッケージとしても利用する。

5.2. IAM 管理用 マニフェスト

本マニフェストは、AWS における IAM 関連クラウドリソースを一元管理するためのものです。

5.2.1. パッケージ一覧

Kind

パッケージ

概要

IamGroup

IAM-GROUP

IAM Group管理機能を提供する。

IamUser

IAM-USER

IAM User管理機能を提供する。

IamRole

IAM-ROLE

IAM Role管理機能を提供する。

IamK8sAccess

IAM-K8S-ACCESS

Kubernetes リソースへのアクセス権限をIAMリソースに付与する機能を提供する。

パッケージリファレンス

5.2.2. パッケージ構成と関係図

以下の図は、各パッケージ間の構成および連携関係を示しています。

../_images/user-iam.svg

5.2.3. ユースケース1 : IAM ユーザーのkubectl アクセス制限

../_images/user-iam1.svg

本ユースケースでは、以下の各パッケージを連携させることで、IAM ユーザーの kubectl アクセスを適切に制御します。

  • IamGroup および IamUser パッケージで、ユーザーおよびそのポリシーの管理を行います。

  • IamRole パッケージで、スイッチロール先となるロールとそのポリシーを管理します。

  • IamK8sAccess パッケージで、IAM ロールに対して Kubernetes リソースへのアクセス権限を付与します。

5.2.4. ユースケース2 : GitHub ActionとのOIDC連携

../_images/user-iam2.svg

本ユースケースでは、IamRole パッケージを利用し、特定の GitHub リポジトリからの Actions によるアクセスを許可する IAM ロールを作成します。 これにより、クレデンシャル情報を管理することなく、GitHub Actions を介して安全に AWS リソースへのアクセスが実現できます。

前提条件

本機能を活用するためには、以下の ID プロバイダーリソースが事前に作成され、適切に設定されている必要があります。

  • GitHub Actions 用 OpenID Connect プロバイダー : token.actions.githubusercontent.com をエンドポイントとする IAM ID プロバイダーリソース

以上の各マニフェストを活用することで、IAM 関連リソースの管理が効率化され、セキュアな運用が実現されます。