AWS SAM ポリシーテンプレート - AWS Serverless Application Model

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

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

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

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

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

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

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

Syntax

AWS SAM テンプレートファイルで指定したポリシーテンプレートごとに、ポリシーテンプレートのプレースホルダー値を含むオブジェクトを常に指定する必要があります。ポリシーテンプレートにプレースホルダー値が必要ない場合は、空のオブジェクトを指定する必要があります。

YAML

MyFunction: Type: AWS::Serverless::Function Properties: Policies: - PolicyTemplateName1: # Policy template with placeholder value Key1: Value1 - PolicyTemplateName2: {} # Policy template with no placeholder value

Examples

例 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 Simple Queue Service (Amazon SQS) キューをポーリングする権限を与えます。
LambdaInvokePolicy AWS Lambda 関数、エイリアス、またはバージョンを呼び出す権限を与えます。
CloudWatchDescribeAlarmHistoryPolicy CloudWatch アラーム履歴を記述する権限を与えます。
CloudWatchPutMetricPolicy にメトリクスを送信する権限を与えますCloudWatch。
EC2DescribePolicy Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを記述する権限を与えます。
DynamoDBCrudPolicy Amazon DynamoDB テーブルに対する作成、読み取り、更新、および削除のアクセス許可を付与します。
DynamoDBReadPolicy DynamoDB テーブルに読み取り専用権限を与えます。
DynamoDBWritePolicy DynamoDB テーブルへの書き込み専用アクセス許可を付与します。
DynamoDBReconfigurePolicy DynamoDB テーブルを再構成する権限を与えます。
SESSendBouncePolicy Amazon Simple Email Service (Amazon SES) ID に SendBounce アクセス許可を付与します。
ElasticsearchHttpPostPolicy Amazon Elasticsearch Service に POST 権限を与えます。
S3ReadPolicy Amazon Simple Storage Service (Amazon S3) バケット内のオブジェクトを読み取るための読み取り専用アクセス許可を付与します。
S3WritePolicy Amazon S3 バケットにオブジェクトを書き込む書き込み権限を与えます。
S3CrudPolicy Amazon S3 バケット内のオブジェクトに対して動作するための作成、読み取り、更新、および削除のアクセス許可を付与します。
AMIDescribePolicy Amazon マシンイメージ (AMI) を記述する権限を与えます。
CloudFormationDescribeStacksPolicy AWS CloudFormation スタックを記述する権限を与えます。
RekognitionDetectOnlyPolicy 顔、ラベル、およびテキストを検出する権限を与えます。
RekognitionNoDataAccessPolicy 顔とラベルを比較および検出する権限を与えます。
RekognitionReadPolicy 顔のリスト表示と検索の権限を与えます。
RekognitionWriteOnlyAccessPolicy 顔のコレクションを作成してインデックスを付けるアクセス権限を与えます。
SQSSendMessagePolicy Amazon SQS キューにメッセージを送信する権限を与えます。
SNSPublishMessagePolicy Amazon Simple Notification Service (Amazon SNS) トピックにメッセージを発行する権限を与えます。
VPCAccessPolicy Elastic Network Interface を作成、削除、説明、デタッチするためのアクセス権を付与します。
DynamoDBStreamReadPolicy DynamoDB ストリームとレコードの記述と読み取りの権限を与えます。
KinesisStreamReadPolicy Amazon Kinesis ストリームを一覧表示し、読み取る権限を与えます。
SESCrudPolicy E メールを送信し、ID を確認する権限を与えます。
SNSCrudPolicy Amazon SNS トピックを作成、公開、サブスクライブする権限を与えます。
KinesisCrudPolicy Amazon Kinesis ストリームを作成、発行、および削除する権限を与えます。
KMSDecryptPolicy AWS Key Management Service (AWS KMS) キーを使用して復号する権限を与えます。
KMSEncryptPolicy AWS Key Management Service (AWS KMS) キーを使用して暗号化する権限を与えます。
PollyFullAccessPolicy Amazon Polly レキシコンリソースへのフルアクセス権限を与えます。
S3FullAccessPolicy Amazon S3 バケット内のオブジェクトに対して動作するためのフルアクセス許可を付与します。
CodePipelineLambdaExecutionPolicy Lambda によって呼び出された CodePipeline 関数に対して、ジョブのステータスをレポートする権限を与えます。
ServerlessRepoReadWriteAccessPolicy AWS Serverless Application Repository サービス内のアプリケーションを作成して一覧表示する権限を与えます。
EC2CopyImagePolicy Amazon EC2 イメージをコピーする権限を与えます。
AWSSecretsManagerRotationPolicy AWS Secrets Manager でシークレットをローテーションする権限を与えます。
AWSSecretsManagerGetSecretValuePolicy 指定されたシークレットのAWS Secrets Managerシークレット値を取得するアクセス許可を付与します。
CodePipelineReadOnlyPolicy CodePipeline パイプラインの詳細を取得するための読み取り権限を与えます。
CloudWatchDashboardPolicy CloudWatch ダッシュボードを操作するメトリクスを配置する権限を与えます。
RekognitionFacesManagementPolicy Amazon Rekognition コレクション内の顔を追加、削除、検索する権限を与えます。
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 指定されたロググループからCloudWatch Logsイベントをフィルタリングする権限を与えます。
SSMParameterReadPolicy Amazon EC2 Systems Manager (SSM) パラメータストアからパラメータにアクセスして、このアカウントのシークレットをロードする権限を与えます。
StepFunctionsExecutionPolicy Step Functions ステートマシンの実行を開始する権限を与えます。
CodeCommitCrudPolicy 特定の CodeCommit リポジトリ内のオブジェクトを作成/読み取り/更新/削除する権限を与えます。
CodeCommitReadPolicy 特定の CodeCommit リポジトリ内のオブジェクトを読み取る権限を与えます。
AthenaQueryPolicy Athena クエリを実行する権限を与えます。
TextractPolicy へのフルアクセスを付与Amazon Textractします。
TextractDetectAnalyzePolicy を使用して ドキュメントを検出および分析するためのアクセス権を付与Amazon Textractします。
TextractGetResultPolicy から検出および分析されたドキュメントを取得するためのアクセス権を付与Amazon Textractします。
EventBridgePutEventsPolicy にイベントを送信する権限を与えますEventBridge。
ElasticMapReduceModifyInstanceFleetPolicy クラスター内のインスタンスフリートの詳細をリストし、容量を変更する権限を与えます。
ElasticMapReduceSetTerminationProtectionPolicy クラスターの削除保護を設定する権限を与えます。
ElasticMapReduceModifyInstanceGroupsPolicy クラスター内のインスタンスグループの詳細を一覧表示し、設定を変更する権限を与えます。
ElasticMapReduceCancelStepsPolicy 実行中のクラスター内の保留中のステップまたはステップをキャンセルする権限を与えます。
ElasticMapReduceTerminateJobFlowsPolicy クラスターをシャットダウンする権限を与えます。
ElasticMapReduceAddJobFlowStepsPolicy 実行中のクラスターに新しいステップを追加する権限を与えます。
SageMakerCreateEndpointPolicy でエンドポイントを作成する権限を与えますSageMaker。
SageMakerCreateEndpointConfigPolicy でエンドポイント設定を作成する権限を与えますSageMaker。
EcsRunTaskPolicy タスク定義の新しいタスクを開始する権限を与えます。
EFSWriteAccessPolicy 書き込みアクセス権を持つ Amazon EFS ファイルシステムをマウントする権限を与えます。
Route53ChangeResourceRecordSetsPolicy でリソースレコードセットを変更する権限を与えますRoute 53。

Troubleshooting

SAM CLI エラー: 「ポリシーテンプレート '<policy-template-name>' に有効なパラメータ値を指定する必要があります」

sam build を実行すると、次のエラーが表示されます。

"Must specify valid parameter values for policy template '<policy-template-name>'"
            

つまり、プレースホルダー値を持たないポリシーテンプレートを宣言するときに、空のオブジェクトを渡さなかったことを意味します。

これを修正するには、 の次の例のようにポリシーを宣言CloudWatchPutMetricPolicyします。

MyFunction: Policies: - CloudWatchPutMetricPolicy: {}