AWS SAM テンプレート内でリソースアクセスを設定および管理する - AWS Serverless Application Model

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

AWS SAM テンプレート内でリソースアクセスを設定および管理する

AWS リソースで相互のやり取りを行わせるには、そのリソース間で適切なアクセスとアクセス許可を設定する必要があります。これにより安全な方法でのやり取りを完了するためには、AWS Identity and Access Management (IAM) ユーザー、ロール、ポリシーの設定が必要です。

このセクションのトピックはすべて、テンプレートの中で定義されているリソースへのアクセス設定に関連があります。このセクションの最初では、一般的なベストプラクティスを扱っています。次の 2 つのトピックでは、サーバーレスアプリケーションで参照されるリソース (AWS SAM コネクタと AWS SAM ポリシーテンプレート) 間のアクセスとアクセス許可を設定するために用意されている、2 つのオプションについて説明します。最後のトピックでは、CloudFormation がユーザーの管理に使用するのと同じメカニズムを使用して、ユーザーアクセスを管理する方法の詳細について説明します。

詳細については、「AWS CloudFormation ユーザーガイド」の「AWS Identity and Access Management でアクセスを制御する」を参照してください。

AWS Serverless Application Model (AWS SAM) には、サーバーレスアプリケーションのアクセスとアクセス許可の管理を簡素化する 2 つのオプションがあります。

  1. AWS SAM コネクタ

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

AWS SAM コネクタ

コネクタを使用することで、2 つのリソース間の許可をプロビジョニングできます。これを実行するには、AWS SAM テンプレートで相互にインタラクションする方法を記述します。これらは、Connectors リソース属性または AWS::Serverless::Connector リソースタイプのいずれかを使用して定義できます。コネクタは、AWS リソースの組み合わせの間におけるデータとイベントの Read および Write アクセスのプロビジョニングをサポートします。AWS SAM コネクタの詳細については、「AWS SAM コネクタによるリソースに対するアクセス許可の管理」を参照してください。

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

AWS SAM ポリシーテンプレートは事前に定義されたアクセス許可のセットであり、AWS SAM テンプレートに追加して、AWS Lambda 関数、AWS Step Functions ステートマシン、およびそれらが相互作用するリソース間のアクセスとアクセス許可を管理できます。AWS SAM ポリシーテンプレートの詳細については、「AWS SAM ポリシーテンプレート」を参照してください。

AWS CloudFormation メカニズム

CloudFormation メカニズムには、AWS リソース間のアクセス許可を管理するための IAM ユーザー、ロール、ポリシーの設定が含まれます。詳細についてはCloudFormation メカニズムを使用した AWS SAM のアクセス許可の管理を参照してください。

ベストプラクティス

サーバーレスアプリケーション全体で、複数の方法を使用してリソース間のアクセス許可を設定できます。そのため、各シナリオに最適なオプションを選択し、アプリケーション全体で複数のオプションを一緒に使用できます。最適なオプションを選択する際に留意すべき点がいくつかあります。

  • AWS SAM コネクタとポリシーテンプレートはどちらも、AWS リソース間の安全なやりとりを促進するために必要な IAM の専門知識が少なく済みます。サポートされている場合は、コネクタとポリシーテンプレートを使用してください。

  • AWS SAM コネクタには、AWS SAM テンプレート内のアクセス許可を定義するためのシンプルで直感的な、簡潔な構文が用意されており、IAM の専門知識は最小限で済みます。AWS SAM コネクタとポリシーテンプレートの両方がサポートされている場合は、AWS SAM コネクタを使用してください。

  • AWS SAM コネクタは、サポートされている AWS SAM ソースと宛先リソース間でデータやイベントの Read および Write アクセスをプロビジョニングできます。サポートされているリソースの一覧については、「AWS SAM コネクタリファレンス」を参照してください。サポートされている場合は、AWS SAM コネクタを使用してください。

  • AWS SAM ポリシーテンプレートは、Lambda 関数、Step Functions ステートマシン、およびそれらが操作する AWS リソース間のアクセス許可に限定されますが、ポリシーテンプレートはすべての CRUD 操作をサポートします。サポートされている場合、および対象シナリオ用の AWS SAM ポリシーテンプレートが利用可能な場合は、AWS SAM ポリシーテンプレートを使用してください。使用可能なポリシーテンプレートのリストについては、「AWS SAM ポリシーテンプレート」を参照してください。

  • それ以外のシナリオや、きめ細かな制御が求められる場合は、CloudFormation メカニズムを使用してください。