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

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

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

AWS Serverless Application Model (AWS SAM) では、ポリシーテンプレートのリストから選択して、Lambda 関数と AWS Step Functions ステートマシンのアクセス許可をアプリケーションで使用されるリソースにスコープできます。

AWS SAM ポリシーテンプレート AWS Serverless Application Repository を使用する のアプリケーションは、 からアプリケーションをデプロイするために特別な顧客確認を必要としません AWS Serverless Application Repository。

新しいポリシーテンプレートの追加をリクエストしたい場合は、以下を実行します。

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

  2. プルリクエストの理由とリクエストへのリンクを含む問題を AWS SAM GitHub プロジェクトに送信します。新しい問題を送信するには、AWS Serverless Application Model: 問題リンクを使用してください。

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

例 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: {}

ポリシーテンプレート表

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

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

トラブルシューティング

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

sam build の実行時に、以下のエラーが表示されます。

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

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

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

MyFunction: Policies: - CloudWatchPutMetricPolicy: {}