AWS SAM ポリシーテンプレート - AWS サーバーレスアプリケーションモデル

AWS SAM ポリシーテンプレート

AWS SAM では、ポリシーテンプレートのリストから選択して、Lambda 関数のアクセス許可をアプリケーションが使用するリソースに絞り込むことができます。

ポリシーテンプレートを使用する AWS Serverless Application Repository の AWS SAM アプリケーションで、AWS Serverless Application Repository からアプリケーションをデプロイする際に特別なお客様の承認は必要ありません。

新しいポリシーテンプレートをリクエストする必要がある場合は、次の操作を行います。

  1. AWS SAM GitHub プロジェクトの develop ブランチの policy_templates.json ソースファイルにプルリクエストを送信します。ソースファイルは、GitHub ウェブサイトの policy_templates.json にあります。

  2. プルリクエストの理由とレクエストへのリンクを含む AWS SAM​ GitHub プロジェクトの問題を送信します。新しい問題を送信する場合は、以下のリンクを使用します。AWS サーバーレスアプリケーションモデル: 問題

このセクションには 2 つの AWS SAM テンプレートの例があります。1 つは、プレースホルダー値を含むポリシーテンプレート、もう 1 つは、プレースホルダー値を含まないポリシーテンプレートです。

例 1: プレースホルダー値を含むポリシーテンプレート

次の例は、SQSPollerPolicy ポリシーテンプレートが QueueName をリソースとして想定していることを示しています。AWS SAM テンプレートは、"MyQueue" Amazon SQS キューの名前を取得します。キューは、同じアプリケーションで作成することも、アプリケーションのパラメータとしてリクエストすることもできます。

MyFunction: Type: 'AWS::Serverless::Function' Properties: CodeUri: ${codeuri} Handler: hello.handler Runtime: python2.7 Policies: - SQSPollerPolicy: QueueName: !GetAtt MyQueue.QueueName

例 2: プレースホルダー値を含まないポリシーテンプレート

次の例では、プレースホルダー値のある CloudWatchPutMetricPolicy ポリシーテンプレートが含まれています。

MyFunction: Type: 'AWS::Serverless::Function' Properties: CodeUri: ${codeuri} Handler: hello.handler Runtime: python2.7 Policies: - CloudWatchPutMetricPolicy: {}

ポリシーテンプレートテーブル

次の表は、使用可能なポリシーテンプレートの一覧です。

ポリシーテンプレート 説明
SQSPollerPolicy Amazon SQS キューをポーリングする権限を与えます。
LambdaInvokePolicy Lambda 関数、エイリアス、またはバージョンを呼び出す権限を与えます。
CloudWatchDescribeAlarmHistoryPolicy CloudWatch アラーム履歴を記述する権限を与えます。
CloudWatchPutMetricPolicy メトリクスを CloudWatch に配置する権限を与えます。
EC2DescribePolicy Amazon EC2 インスタンスを記述する権限を与えます。
DynamoDBCrudPolicy DynamoDB テーブルに対して作成、読み取り、更新、削除の権限を与えます。
DynamoDBReadPolicy DynamoDB テーブルに読み取り専用権限を与えます。
DynamoDBReconfigurePolicy DynamoDB テーブルを再構成する権限を与えます。
SESSendBouncePolicy Amazon SES ID に SendBounce の権限を与えます。
ElasticsearchHttpPostPolicy Amazon Elasticsearch Service に POST 権限を与えます。
S3ReadPolicy Amazon S3 バケット内のオブジェクトに対して読み取り専用権限を与えます。
S3CrudPolicy Amazon S3 バケット内のオブジェクトに対して作成、読み取り、更新、および削除の権限を与えます。
AMIDescribePolicy Amazon マシンイメージ (AMI) を記述する権限を与えます。
CloudFormationDescribeStacksPolicy AWS CloudFormation スタックを記述する権限を与えます。
RekognitionDetectOnlyPolicy 顔、ラベル、およびテキストを検出する権限を与えます。
RekognitionNoDataAccessPolicy 顔とラベルを比較および検出する権限を与えます。
RekognitionReadPolicy 顔のリスト表示と検索の権限を与えます。
RekognitionWriteOnlyAccessPolicy 顔のコレクションを作成してインデックスを付けるアクセス権限を与えます。
SQSSendMessagePolicy Amazon SQS キューにメッセージを送信する権限を与えます。
SNSPublishMessagePolicy Amazon SNS トピックにメッセージを発行する権限を与えます。
VPCAccessPolicy Elastic Network Interface を作成、削除、記述、およびデタッチするアクセス権限を与えます。
DynamoDBStreamReadPolicy DynamoDB ストリームとレコードの記述と読み取りの権限を与えます。
KinesisStreamReadPolicy Amazon Kinesis ストリームを一覧表示し、読み取る権限を与えます。
SESCrudPolicy E メールを送信し、ID を確認する権限を与えます。
SNSCrudPolicy Amazon SNS トピックを作成、公開、サブスクライブする権限を与えます。
KinesisCrudPolicy Amazon Kinesis ストリームを作成、発行、および削除する権限を与えます。
KMSDecryptPolicy AWS KMS キーを使用して復号する権限を与えます。
KMSEncryptPolicy AWS KMS キーを使用して暗号化する権限を与えます。
PollyFullAccessPolicy Amazon Polly レキシコンリソースへのフルアクセス権限を与えます。
S3FullAccessPolicy Amazon S3 バケット内のオブジェクトへのフルアクセス権限を与えます。
CodePipelineLambdaExecutionPolicy CodePipeline によって呼び出された Lambda 関数に対して、ジョブのステータスをレポートする権限を与えます。
ServerlessRepoReadWriteAccessPolicy AWS Serverless Application Repository サービス内のアプリケーションを作成して一覧表示する権限を与えます。
EC2CopyImagePolicy Amazon EC2 イメージをコピーする権限を与えます。
AWSSecretsManagerRotationPolicy AWS Secrets Manager でシークレットをローテーションする権限を与えます。
AWSSecretsManagerGetSecretValuePolicy 指定された AWS Secrets Manager シークレットに対して GetSecretValue へのアクセス権限を与えます。
CodePipelineReadOnlyPolicy CodePipeline パイプラインの詳細を取得するための読み取り権限を与えます。
CloudWatchDashboardPolicy CloudWatch ダッシュボードを操作するメトリクスを配置する権限を与えます。
RekognitionFacesManagementPolicy コレクション内の顔を追加、削除、および検索する権限を与えます。
RekognitionFacesPolicy 顔とラベルを比較および検出する権限を与えます。
RekognitionLabelsPolicy オブジェクトおよびモデレーションラベルを検出する権限を与えます。
DynamoDBBackupFullAccessPolicy テーブルの DynamoDB オンデマンドバックアップに対する読み取りおよび書き込み権限を与えます。
DynamoDBRestoreFromBackupPolicy バックアップから DynamoDB テーブルを復元する権限を与えます。
ComprehendBasicAccessPolicy エンティティ、キーフレーズ、言語、および感情を検出するための権限を与えます。
MobileAnalyticsWriteOnlyAccessPolicy すべてのアプリケーションリソースのイベントデータを格納するための書き込み専用権限を与えます。
PinpointEndpointAccessPolicy Amazon Pinpoint アプリケーションのエンドポイントを取得および更新する権限を与えます。
FirehoseWritePolicy Kinesis Data Firehose デリバリーストリームへの書き込み権限を与えます。
FirehoseCrudPolicy Kinesis Data Firehose デリバリーストリームの作成、書き込み、更新、および削除権限を与えます。
EKSDescribePolicy Amazon EKS クラスターを記述または一覧表示する権限を与えます。
CostExplorerReadOnlyPolicy 請求履歴に対する読み取り専用の Cost Explorer API に対する読み取り専用権限を与えます。
OrganizationsListAccountsPolicy 子アカウントの名前と ID を一覧表示する読み取り専用権限を与えます。
SESBulkTemplatedCrudPolicy E メール、テンプレート化された E メール、テンプレート化されたバルク E メールの送信、および ID を確認する権限を与えます。
SESEmailTemplateCrudPolicy Amazon SES E メールテンプレートの作成、取得、一覧表示、更新、および削除を行う権限を与えます。
FilterLogEventsPolicy 指定されたロググループでログイベントをフィルタリングする権限を与えます。
SSMParameterReadPolicy このアカウントのシークレットをロードするためのパラメータにアクセスする権限を与えます。
StepFunctionsExecutionPolicy このアカウントのシークレットをロードするためのパラメータにアクセスする権限を与えます。
CodeCommitCrudPolicy 特定の CodeCommit リポジトリ内のオブジェクトを作成/読み取り/更新/削除する権限を与えます。
CodeCommitReadPolicy 特定の CodeCommit リポジトリ内のオブジェクトを読み取る権限を与えます。
AthenaQueryPolicy Athena クエリを実行する権限を与えます。