################################# HELM ユーザー用パッケージ ################################# ユーザーが kubernetes インフラ環境を構築するために、以下のパッケージを提供します。 これらのパッケージは Application Operator を経由してユーザー自身がアプリケーションを構成するために利用します。 Application マニフェスト ======================== Application Operator でアプリケーションを構成するために、 ``Application`` マニフェストを利用します。 .. code-block:: yaml apiVersion: managed.msp.sbopsv/v1alpha1 kind: Application metadata: name: kanboard namespace: staging spec: chart: name: basic-deployment version: settings: パッケージ一覧 -------------- +------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------+ | カテゴリ | パッケージ | 概要 | +==================+========================================================+=========================================================================================+ | アプリケーション | :doc:`BASIC-DEPLOYMENT` | ステートレスな Docker イメージをホストする機能を提供する。 | | | | 本パッケージは、コンテナの配置だけではなく、Secret の作成とマウント、ネットワーク設定等 | | | | アプリケーションの公開に必要な設定と、 | | | | 運用に必要な BlueGreen Deploy 設定等のリソースを作成する。 | +------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------+ | | :doc:`CRONJOB` | 任意の Docker image 及びコマンドを指定し、定期実行Jobを登録する。 | +------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------+ | データ | :doc:`RDB` | マネージド RDB のインスタンス作成からDB設定までの機能を提供する。 | +------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------+ | | :doc:`STORAGE` | マネージド Object bucket ストレージの作成及び設定の機能を提供する。 | +------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------+ | | :doc:`CONTAINER-REGISTRY` | マネージド コンテナレジストリーの作成及び設定の機能を提供する。 | +------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------+ | | :doc:`MESSAGING` | マネージドの非同期メッセージングサービス設定を行う機能を提供する。 | +------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------+ | | :doc:`DB-AURORA` | AWS Auroraの作成・設定を行う機能を提供する。 | +------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------+ | ネットワーク | :doc:`DNS` | マネージド DNS のレコード管理機能を提供する。 | +------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------+ | | :doc:`INGRESS` | Gatewayの作成・設定を行う機能を提供する。 | +------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------+ | | :doc:`PUBLIC-IP` | パブリックIPの作成を行う機能を提供する。 | +------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------+ | セキュリティ | :doc:`VAULT` | マネージド KMS 設定機能を提供する。 | | | | 本パッケージではデフォルト KMS コンテナの作成のため、管理用パッケージとしても利用する。 | +------------------+--------------------------------------------------------+-----------------------------------------------------------------------------------------+ .. toctree:: :maxdepth: 1 :caption: パッケージリファレンス /managed/basic-deployment.rst /managed/cronjob.rst /managed/rdb.rst /managed/storage.rst /managed/container-registry.rst /managed/messaging.rst /managed/db-aurora.rst /managed/dns.rst /managed/ingress.rst /managed/public-ip.rst /managed/vault.rst IAM 管理用 マニフェスト ======================== 本マニフェストは、AWS における IAM 関連クラウドリソースを一元管理するためのものです。 パッケージ一覧 -------------- +--------------+------------------------------------------------+----------------------------------------------------------------------------+ | Kind | パッケージ | 概要 | +==============+================================================+============================================================================+ | IamGroup | :doc:`IAM-GROUP` | IAM Group管理機能を提供する。 | +--------------+------------------------------------------------+----------------------------------------------------------------------------+ | IamUser | :doc:`IAM-USER` | IAM User管理機能を提供する。 | +--------------+------------------------------------------------+----------------------------------------------------------------------------+ | IamRole | :doc:`IAM-ROLE` | IAM Role管理機能を提供する。 | +--------------+------------------------------------------------+----------------------------------------------------------------------------+ | IamK8sAccess | :doc:`IAM-K8S-ACCESS` | Kubernetes リソースへのアクセス権限をIAMリソースに付与する機能を提供する。 | +--------------+------------------------------------------------+----------------------------------------------------------------------------+ .. toctree:: :maxdepth: 1 :caption: パッケージリファレンス /managed/iam-group.rst /managed/iam-user.rst /managed/iam-role.rst /managed/iam-k8s-access.rst パッケージ構成と関係図 ----------------------- 以下の図は、各パッケージ間の構成および連携関係を示しています。 .. drawio-figure:: static/user-iam.drawio :page-index: 0 ユースケース1 : IAM ユーザーのkubectl アクセス制限 ------------------------------------------------------ .. drawio-figure:: static/user-iam.drawio :page-index: 1 本ユースケースでは、以下の各パッケージを連携させることで、IAM ユーザーの kubectl アクセスを適切に制御します。 - **IamGroup** および **IamUser** パッケージで、ユーザーおよびそのポリシーの管理を行います。 - **IamRole** パッケージで、スイッチロール先となるロールとそのポリシーを管理します。 - **IamK8sAccess** パッケージで、IAM ロールに対して Kubernetes リソースへのアクセス権限を付与します。 ユースケース2 : GitHub ActionとのOIDC連携 ------------------------------------------------------ .. drawio-figure:: static/user-iam.drawio :page-index: 2 本ユースケースでは、**IamRole** パッケージを利用し、特定の GitHub リポジトリからの Actions によるアクセスを許可する IAM ロールを作成します。 これにより、クレデンシャル情報を管理することなく、GitHub Actions を介して安全に AWS リソースへのアクセスが実現できます。 前提条件 ~~~~~~~~ 本機能を活用するためには、以下の ID プロバイダーリソースが事前に作成され、適切に設定されている必要があります。 - **GitHub Actions 用 OpenID Connect プロバイダー** : `token.actions.githubusercontent.com` をエンドポイントとする IAM ID プロバイダーリソース 以上の各マニフェストを活用することで、IAM 関連リソースの管理が効率化され、セキュアな運用が実現されます。