2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[小ネタ] AWS SAM で Parameter Store 見るときはポリシーテンプレートがいいよ

Last updated at Posted at 2020-12-18

ポリシーテンプレートとは

SAM にはポリシーテンプレートという、パラメータを渡すことで自動的に決められた IAM ポリシーを適用してくれる便利機能があります。

Lambda 関数は ECS タスクと違って、Parameter Store を環境変数に設定する機能が(まだ)ないので、基本的にコード内で ssm API を使ってシークレット値を取得する必要があります。

Parametrer Store を読めるマネージドポリシー(arn:aws:iam::aws:policy/AmazonSSMReadOnlyAccessとか)をアタッチしてもいいけど、読める範囲が大きすぎるのでポリシーテンプレートを使ったほうがいいです。

  SampleFunction:
    Type: AWS::Serverless::Function
    Properties:
      FunctionName: sample-function
      CodeUri: .
      Handler: index.handler
      Runtime: nodejs12.x
      Environment:
        Variables:
          PARAMETER_PATH: /my/secret/parameter_path
      Policies:
        # ポリシーテンプレートを使う
        # ParameterName は先頭にスラッシュをつけてはいけないので注意
        - SSMParameterReadPolicy:
            ParameterName: "my/secret/parameter_path"

公式ドキュメント見ると、ParameterName ではなく parameterName になってるんですけど、先頭大文字が正解です。(AWSにフィードバック済み)

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?