Skip to content

Latest commit

 

History

History
109 lines (73 loc) · 4.63 KB

File metadata and controls

109 lines (73 loc) · 4.63 KB

English / 日本語

Ghost String Parameter for CDK

AWS Systems ManagerのParameter Storeに格納されたパラメータに対するアクセスコントロールを提供します。

このライブラリはAWS Cloud Development Kit (CDK)バージョン2と組み合わせる想定です。

インストール

npm install https://github.com/codemonger-io/cdk-ghost-string-parameter.git#v0.2.1

GitHub Packagesからインストールする

mainブランチにコミットがプッシュされるたびに、開発者用パッケージがGitHub Packagesが管理するnpmレジストリにパブリッシュされます。 開発者用パッケージのバージョンは次のリリースバージョンにハイフン(-)と短いコミットハッシュをつなげたものになります。例、0.2.1-abc1234 (abc1234はパッケージをビルドするのに使ったコミット(スナップショット)の短いコミットハッシュ)。 開発者用パッケージこちらにあります。

GitHubパーソナルアクセストークンの設定

開発者用パッケージをインストールするには、最低限read:packagesスコープのクラシックGitHubパーソナルアクセストークン(PAT)を設定する必要があります。 以下、簡単にPATの設定方法を説明します。 より詳しくはGitHubのドキュメントをご参照ください。

PATが手に入ったら以下の内容の.npmrcファイルをホームディレクトリに作成してください。

//npm.pkg.github.com/:_authToken=$YOUR_GITHUB_PAT

$YOUR_GITHUB_PATはご自身のPATに置き換えてください。

プロジェクトのルートディレクトリに以下の内容の.npmrcファイルを作成してください。

@codemonger-io:registry=https://npm.pkg.github.com

これで以下のコマンドで開発者用パッケージをインストールできます。

npm install @codemonger-io/cdk-ghost-string-parameter@0.2.1-abc1234

abc1234はインストールしたいスナップショットの短いコミットハッシュに置き換えてください。

サンプル

このライブラリが提供する唯一のクラスがGhostStringParameterです。 以下は使用例です。

import { GhostStringParameter } from '@codemonger-io/cdk-ghost-string-parameter';
import { aws_iam as iam } from 'aws-cdk-lib';
import { Construct } from 'constructs';

class SampleConstruct extends Construct {
    readonly parameter: GhostStringParameter;

    constructor(scope: Construct, id: string) {
        super(scope, id);

        this.parameter = new GhostStringParameter(this, {
            parameterName: '/parameters/SAMPLE_PARAMETER'
        });
    }

    grantReadParameter(grantee: iam.IGrantable): iam.Grant {
        return this.parameter.grantRead(grantee);
    }
}

APIドキュメント

APIドキュメントはapi-docs/markdownにあります(英語版のみ)。

動機

CDKでAWS Systems ManagerのParameter Storeに格納されているパラメータを表すのにaws-cdk-lib.aws_ssm.StringParameter (StringParameter)が使えます。 StringParameterを使うと、grantReadなどのAPIを通じてパラメータに対するアクセスコントロールが行えます。 ところが、StringParameterを使うには、

  • CDKスタックでパラメータをプロビジョンするか、
  • 既存のパラメータにバインドするかしなければなりません。

CDKスタックをデプロイした後にパラメータを作成したい場合は、残念ながらStringParameterを使うことはできません。 デプロイ時に存在しないパラメータに対してプロビジョンせずにアクセスコントロールを行いたいときに、このライブラリが役に立つかもしれません。

開発

依存関係の解決

pnpm install --frozen-lockfile

ビルド

pnpm build

APIドキュメントの生成

pnpm build:doc