「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」
AWS SAM ポリシーテンプレート
AWS SAM では、ポリシーテンプレートのリストから選択して、Lambda 関数のアクセス許可をアプリケーションが使用するリソースに絞り込むことができます。
ポリシーテンプレートを使用する AWS Serverless Application Repository の AWS SAM アプリケーションで、AWS Serverless Application Repository からアプリケーションをデプロイする際に特別なお客様の承認は必要ありません。
新しいポリシーテンプレートをリクエストする必要がある場合は、次の操作を行います。
-
develop
プロジェクトの AWS SAM ブランチの policy_templates.json ソースファイルにプルリクエストを送信します。GitHubソースファイルは、 ウェブサイトのpolicy_templates.jsonGitHub にあります。 -
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: {}