翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS SAM ポリシーテンプレート
AWS Serverless Application Model (AWS SAM) では、ポリシーテンプレートのリストから選択して、Lambda 関数と AWS Step Functions ステートマシンの許可の範囲をアプリケーションが使用するリソースに絞り込むことができます。
ポリシーテンプレートを使用する AWS SAM の AWS Serverless Application Repository アプリケーションには、AWS Serverless Application Repository からのアプリケーションのデプロイに特別なお客様の承認は必要ありません。
新しいポリシーテンプレートの追加をリクエストしたい場合は、以下を実行します。
-
developGitHub プロジェクトの AWS SAM ブランチにある policy_templates.json ソースファイルに対してプルリクエストを送信します。このソースファイルは、GitHub ウェブサイトの policy_templates.jsonにあります。 -
プルリクエストの理由と、リクエストへのリンクが含まれる、AWS SAM GitHub プロジェクトの問題を送信します。新しい問題を送信するには、AWS Serverless Application Model: 問題
リンクを使用してください。
構文
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
注記
通常の IAM ポリシーを設定している場合、または Lambda 経由で管理ポリシーを設定している場合は、空のオブジェクトを使用せずにポリシーテンプレートを設定できます。
例
例 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: {}
例 3: プレースホルダー値と通常の IAM ポリシーを含むポリシーテンプレート
次の例には、AmazonSQSFullAcess ポリシーと DynamoDBCrudPolicy ポリシーテンプレートが含まれています。AmazonSQSFullAccess ポリシーは IAM ポリシーであり、AWS SAM ポリシーではないことからポリシーが CloudFormationに直接渡されるため、空のオブジェクトを指定する必要はありません。
MyFunction: Type: 'AWS::Serverless::Function' Properties: CodeUri: ${codeuri} Handler: hello.handler Runtime: python2.7 Policies: - AmazonSQSFullAccess // IAM policy could be set without passing an empty object - DynamoDBCrudPolicy: // SAM specific policy, has a defined structure TableName: !Ref SampleTable
ポリシーテンプレート表
以下は、使用可能なポリシーテンプレートの表です。
| ポリシーテンプレート | 説明 |
|---|---|
| AcmGetCertificatePolicy | AWS Certificate Manager から証明書を読み取る許可を付与します。 |
| AMIDescribePolicy | Amazon マシンイメージ (AMI) を記述する許可を付与します。 |
| AthenaQueryPolicy | Athena クエリを実行する許可を付与します。 |
| AWSSecretsManagerGetSecretValuePolicy | 指定された AWS Secrets Manager シークレットのシークレット値を取得する許可を付与します。 |
| AWSSecretsManagerRotationPolicy | AWS Secrets Manager のシークレットをローテーションを行う許可を付与します。 |
| CloudFormationDescribeStacksPolicy | CloudFormation スタックを記述する許可を付与します。 |
| CloudWatchDashboardPolicy | CloudWatch ダッシュボードで操作を行うためのメトリクスを配置する許可を付与します。 |
| CloudWatchDescribeAlarmHistoryPolicy | CloudWatch アラーム履歴を記述する許可を付与します。 |
| CloudWatchPutMetricPolicy | CloudWatch にメトリクスを送信する許可を付与します。 |
| CodeCommitCrudPolicy | 特定の CodeCommit リポジトリ内にあるオブジェクトを作成/読み取り/更新/削除する許可を付与します。 |
| CodeCommitReadPolicy | 特定の CodeCommit リポジトリ内にあるオブジェクトを読み取る許可を付与します。 |
| CodePipelineLambdaExecutionPolicy | CodePipeline によって呼び出された Lambda 関数がジョブのステータスを報告するための許可を付与します。 |
| 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 Logs イベントをフィルタリングする許可を付与します。 |
| 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 AI でエンドポイント設定を作成する許可を付与します。 |
| SageMakerCreateEndpointPolicy | SageMaker AI でエンドポイントを作成する許可を付与します。 |
| 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 エラー:「Must specify valid parameter values for policy template '<policy-template-name>」
sam build の実行時に、以下のエラーが表示されます。
"Must specify valid parameter values for policy template '<policy-template-name>'"
これは、プレースホルダ値がないポリシーテンプレートを宣言したときに、空のオブジェクトが渡されなかったことを意味します。
これを修正するには、以下の CloudWatchPutMetricPolicy 例のようにポリシーを宣言します。
MyFunction: Policies: - CloudWatchPutMetricPolicy: {}