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

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

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 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

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 Kinesis Stream を作成、発行、および削除するアクセス許可を付与します。
KMSDecryptPolicy を使用して復号する権限を与えますAWS Key Management Service(AWS KMS) キー。
KMSEncryptPolicy 暗号化する権限を与えますAWS Key Management Service(AWS KMS) キー。
PollyFullAccessPolicy Amazon Polly レキシコンリソースへのフルアクセス権限を与えます。
S3FullAccessPolicy Amazon S3 バケットのオブジェクトに対してアクションするフルアクセス権限を与えます。
CodePipelineLambdaExecutionPolicy CodePipeline Pipeline によって呼び出された 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 API に対する読み取り専用権限を与えます。
OrganizationsListAccountsPolicy 子アカウントの名前と ID を一覧表示する読み取り専用権限を与えます。
SESBulkTemplatedCrudPolicy E メール、テンプレート化された E メール、テンプレート化されたバルク E メールの送信、および ID を確認する権限を与えます。
SESEmailTemplateCrudPolicy Amazon SES E 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 Route53 でリソースレコードセットを変更する権限を与えます。

Troubleshooting

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

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

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

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

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

MyFunction: Policies: - CloudWatchPutMetricPolicy: {}