English / 日本語
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.1mainブランチにコミットがプッシュされるたびに、開発者用パッケージがGitHub Packagesが管理するnpmレジストリにパブリッシュされます。
開発者用パッケージのバージョンは次のリリースバージョンにハイフン(-)と短いコミットハッシュをつなげたものになります。例、0.2.1-abc1234 (abc1234はパッケージをビルドするのに使ったコミット(スナップショット)の短いコミットハッシュ)。
開発者用パッケージはこちらにあります。
開発者用パッケージをインストールするには、最低限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-abc1234abc1234はインストールしたいスナップショットの短いコミットハッシュに置き換えてください。
このライブラリが提供する唯一のクラスが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-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-lockfilepnpm buildpnpm build:doc