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

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

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

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

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

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

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

  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 (SendBounce) ID に Amazon Simple Email Service 権限を与えます。Amazon SES
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 CodePipeline によって呼び出された Lambda 関数に対して、ジョブのステータスをレポートする権限を与えます。
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 APIs への読み取り専用権限を与えます。
OrganizationsListAccountsPolicy 子アカウント名と IDs を一覧表示する読み取り専用権限を与えます。
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 ファイルシステムをマウントする権限を与えます。

Troubleshooting

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

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

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

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

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

MyFunction: Policies: - CloudWatchPutMetricPolicy: {}