AWS SAM CloudFormationでLambdaのIAMロールをデプロイする方法

AWS SAM CloudFormationでLambdaのIAMロールをデプロイする方法

Lambda用のIAMロールをデプロイする手順です。ポリシーは適当にアタッチしています。

エクスポートを2つ指定しています。

template-lambda.yml

AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::Serverless-2016-10-31'
Description: Lambda Deploy
Parameters:
Stage:
Description: Stage name
Type: String
AllowedValues:
– prod
– dev
– test
LambdaRoleName:
Description: lambda role name
Type: String
Resources:
LambdaRole:
Type: AWS::IAM::Role
Properties:
RoleName: !Ref LambdaRoleName
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
– Effect: Allow
Principal:
Service:
– lambda.amazonaws.com
Action:
– sts:AssumeRole
ManagedPolicyArns:
– arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
– arn:aws:iam::aws:policy/AmazonEC2FullAccess
– arn:aws:iam::aws:policy/AmazonS3FullAccess
Outputs:
LambdaRoleID:
Description: LambdaRole ID
Value: !Ref LambdaRole
Export:
Name: !Sub
– ${Stage}LambdaRoleID
– { Stage: !Ref Stage}
LambdaRoleARN:
Description: LambdaRole ARN
Value: !GetAtt LambdaRole.Arn
Export:
Name: !Sub
– ${Stage}LambdaRoleARN
– { Stage: !Ref Stage }

view raw
gistfile1.txt
hosted with ❤ by GitHub

aws cloudformation packageコマンドでテンプレートを吐き出します。

C:\tmp>aws cloudformation package –template-file template-lambda.yml –output-template-file template-lambda-out.yml –s3-bucket バケット名
Successfully packaged artifacts and wrote output template to file template-lambda-out.yml.
Execute the following command to deploy the packaged template
aws cloudformation deploy –template-file C:\tmp\template-lambda-out.yml –stack-name <YOUR STACK NAME>

view raw
gistfile1.txt
hosted with ❤ by GitHub

template-lambda-out.ymlファイルが作成されていると思います。

このファイルをもとに、aws cloudformation deployコマンドを実行してlambda-roleというstackを作成します。

C:\tmp>aws cloudformation deploy –template-file template-lambda-out.yml –stack-name lambda-role –region ap-northeast-1 –parameter-overrides Stage=dev LambdaRoleName=SampleRole –profile=default –capabilities CAPABILITY_NAMED_IAM
Waiting for changeset to be created..
Waiting for stack create/update to complete
Successfully created/updated stack – lambda-role

view raw
gistfile1.txt
hosted with ❤ by GitHub

CloudFormationにlambda-roleが作成されていることを確認します。

AWS SAM CloudFormationでLambdaのIAMロールをデプロイする方法

IAMロールの確認

IAMロールがSampleRoleという名前で作成されているか確認します。

AWS SAM CloudFormationでLambdaのIAMロールをデプロイする方法

テンプレートファイルで指定したポリシーがアタッチされているIAMロールが作成されていることが確認できます。

スタックのエクスポート名

スタックの出力ページの一番右にエクスポート名という欄があります。もしくは左側メニューから一覧が表示されます。

AWS SAM CloudFormationでLambdaのIAMロールをデプロイする方法

このエクスポート名は、他のyamlで!ImportValue エクスポート名で指定することが出来ます。

例えばLambdaデプロイ時にRole: !ImportValue エクスポート名とすることが可能になります。

スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA