AWS Serverless Application Repository
開発者ガイド

アプリケーションをデプロイするときの IAM ロール、リソースポリシー、ネストされたアプリケーションの承認

アプリケーションをデプロイする前に、AWS Serverless Application Repository は、IAM ロール用アプリケーションのテンプレート、AWS リソースポリシー、および作成する可能性があるネストされたアプリケーションを確認します。フルアクセスのある IAM ロールなどの IAM リソースは、AWS アカウントの任意のリソースに変更できます。したがって、拡大した権限で意図していないリソースを作成しないように、続行する前にアプリケーションに関連付けられたアクセス許可を確認することをお勧めします。そのように実行したことを確認するには、ユーザーの代わりに AWS Serverless Application Repository がアプリケーションをデプロイする前に、アプリケーションが機能を備えていることを確認する必要があります。

アプリケーションには、CAPABILITY_IAMCAPABILITY_NAMED_IAMCAPABILITY_RESOURCE_POLICYCAPABILITY_AUTO_EXPAND の 4 つの機能が含まれている場合があります。

次のリソースにより、CAPABILITY_IAM または CAPABILITY_NAMED_IAM: AWS::IAM::GroupAWS::IAM::InstanceProfileAWS::IAM::Policy、および AWS::IAM::Role を指定する必要があります。アプリケーションにカスタム名を持つ IAM リソースがある場合は、CAPABILITY_NAMED_IAM を指定する必要があります。機能を指定する方法の例については、「アプリケーション機能の検索と承認 (AWS CLI)」を参照してください。

以下のリソースでは、CAPABILITY_RESOURCE_POLICY: AWS::Lambda::PermissionAWS::IAM:PolicyAWS::ApplicationAutoScaling::ScalingPolicyAWS::S3::BucketPolicyAWS::SQS::QueuePolicy、および AWS::SNS::TopicPolicy を指定する必要があります。

1 つまたは複数のネストされたアプリケーションが含まれているアプリケーションでは、CAPABILITY_AUTO_EXPAND を指定する必要があります。ネストされたアプリケーションの詳細については、『AWS サーバーレスアプリケーションモデル 開発者ガイド』の「Nested Applications」を参照してください。

アプリケーション機能の検索と承認 (Lambda コンソールまたは AWS ウェブサイト)

利用可能なアプリケーションは、AWS Serverless Application Repository ウェブサイト の AWS Serverless Application Repository または AWS Serverless Application Repository タブの下にある [​関数の作成] ページの Lambda コンソール で見つけることができます。

カスタム IAM ロールまたはリソースポリシーを作成するために機能の承認を必要とするアプリケーションは、デフォルトでは検索結果に表示されません。これらの機能が含まれているアプリケーションを検索するには、[Show apps that create custom IAM roles or resource policies (カスタム IAM ロールまたはリソースポリシーを作成するアプリを表示)] チェックボックスをオンにする必要があります。

アプリケーションの機能は、アプリケーションを選択するときに [アクセス許可] タブの下で確認できます。アプリケーションをデプロイするには、[I acknowledge this application creates custom IAM roles or resource polices (このアプリケーションがカスタム IAM ロールまたはリソースポリシーを作成することを承認します)] チェックボックスをオンにする必要があります。これらの機能を承認しない場合は、エラーメッセージ [Acknowledgement required.To deploy, check the box in Configure application parameters section (承認が必要です。デプロイするには、[Configure application parameters] (アプリケーションパラメータの設定) セクションのチェックボックスをオンにします)] が表示されます。

アプリケーション機能の検索と承認 (AWS CLI)

AWS CLI を使用してアプリケーションの機能を確認するには、次の手順に従います。

  1. アプリケーションの機能を確認: 以下の AWS CLI コマンドを使用して、アプリケーションの機能を確認します。

    aws serverlessrepo get-application \ --application-id application-arn

    requiredCapabilities レスポンスプロパティには、アプリケーションをデプロイする前に、承認する必要があるアプリケーション機能のリストが記載されています。また、AWS SDK で GetApplication API を使用してこのデータを取得することもできます。

  2. アプリケーションをデプロイ: 機能のあるアプリケーションをデプロイするには、AWS CloudFormation 変更セットを作成するときにその機能のリストを渡します。たとえば、次の AWS CLI コマンドを使用し、アプリケーションの機能を承認して、デプロイします。

    aws serverlessrepo create-cloud-formation-change-set \ -–application-id application-arn \ --stack-name unique-name-for-cloud-formation-stack \ --capabilities list-of-capabilities

    また、AWS SDK で CreateCloudFormationChangeSet API を使用してアプリケーションをデプロイできます。

    例:

    次の AWS CLI コマンドでは、カスタム名と 1 つ以上のネストされたアプリケーションがある AWS::IAM::Role リソースを含むアプリケーションを承認します。

    aws serverlessrepo create-cloud-formation-change-set \ -–application-id application-arn \ --stack-name unique-name-for-cloud-formation-stack \ --capabilities CAPABILITY_NAMED_IAM CAPABILITY_AUTO_EXPAND