翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
環境変数の参照
App Runner を使用すると、サービスの作成時またはサービスの更新時に、シークレットと設定をサービス内の環境変数として参照できます。
タイムアウトや再試行回数などの機密性のない設定データは、プレーンテキストでキーと値のペアとして参照できます。プレーンテキストで参照する設定データは暗号化されず、App Runner サービス設定とアプリケーションログで他のユーザーに表示されます。
注記
セキュリティ上の理由から、App Runner サービスのプレーンテキストの機密データは参照しないでください。
機密データを環境変数として参照する
App Runner は、機密データをサービス内の環境変数として安全に参照することをサポートしています。参照する機密データを AWS Secrets Managerまたは AWS Systems Manager Parameter Store に保存することを検討してください。その後、App Runner コンソールから、または API を呼び出すことで、サービスでそれらを安全に環境変数として参照できます。これにより、シークレットとパラメータの管理がアプリケーションコードとサービス設定から効果的に分離され、App Runner で実行されているアプリケーションの全体的なセキュリティが向上します。
注記
App Runner では、Secrets Manager と SSM パラメータストアを環境変数として参照しても料金は発生しません。ただし、Secrets Manager と SSM Parameter Store の使用には標準料金がかかります。
料金の詳細については、以下を参照してください。
以下は、機密データを環境変数として参照するプロセスです。
-
API キー、データベース認証情報、データベース接続パラメータ、アプリケーションバージョンなどの機密データをシークレットまたはパラメータとして AWS Secrets Manager または AWS Systems Manager Parameter Store に保存します。
-
App Runner が Secrets Manager と SSM パラメータストアに保存されているシークレットとパラメータにアクセスできるように、インスタンスロールの IAM ポリシーを更新します。詳細については、「 アクセス許可」を参照してください。
-
名前を割り当てて Amazon リソースネーム (ARN) を指定することで、シークレットとパラメータを環境変数として安全に参照します。サービスを作成するとき、またはサービスの設定を更新するときに、環境変数を追加できます。次のいずれかのオプションを使用して環境変数を追加できます。
-
App Runner コンソール
-
App Runner API
-
apprunner.yaml
設定ファイル
注記
App Runner サービスを作成または更新するときに、 を環境変数の名前
PORT
として割り当てることはできません。これは App Runner サービスの予約済み環境変数です。シークレットとパラメータを参照する方法の詳細については、「環境変数の管理」を参照してください。
-
注記
App Runner はシークレットとパラメータ ARNs への参照のみを保存するため、機密データは App Runner サービス設定とアプリケーションログの他のユーザーには表示されません。
考慮事項
-
または AWS Secrets Manager Parameter Store のシークレットとパラメータ AWS Systems Manager にアクセスするための適切なアクセス許可でインスタンスロールを更新してください。詳細については、「 アクセス許可」を参照してください。
-
AWS Systems Manager Parameter Store が、起動または更新するサービス AWS アカウント と同じ にあることを確認します。現在、アカウント間で SSM パラメータストアのパラメータを参照することはできません。
-
シークレットとパラメータ値がローテーションまたは変更されると、App Runner サービスでは自動的に更新されません。App Runner はデプロイ中にシークレットとパラメータのみをプルするため、App Runner サービスを再デプロイします。
-
また、App Runner サービスの SDK を使用して AWS Secrets Manager と AWS Systems Manager Parameter Store を直接呼び出すこともできます。
-
エラーを回避するには、それらを環境変数として参照するときに、次の点を確認してください。
-
シークレットの正しい ARN を指定します。
-
パラメータの正しい名前または ARN を指定します。
-
アクセス許可
AWS Secrets Manager または SSM パラメータストアに保存されているシークレットとパラメータの参照を有効にするには、インスタンスロールの IAM ポリシーに適切なアクセス許可を追加して、Secrets Manager と SSM パラメータストアにアクセスします。
注記
App Runner は、ユーザーのアクセス許可がないと、アカウントのリソースにアクセスできません。アクセス許可は、IAM ポリシーを更新することによって指定します。
次のポリシーテンプレートを使用して、IAM コンソールでインスタンスロールを更新できます。これらのポリシーテンプレートは、特定の要件を満たすように変更できます。インスタンスロールの更新の詳細については、IAM ユーザーガイドの「ロールの変更」を参照してください。
注記
環境変数 を作成するときに、App Runner コンソールから次のテンプレートをコピーすることもできます。
次のテンプレートをインスタンスロールにコピーして、 からシークレットを参照するアクセス許可を追加しますAWS Secrets Manager。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "kms:Decrypt*" ], "Resource": [ "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:<secret_name>", "arn:aws:kms:<region>:<aws_account_id>:key/<key_id>" ] } ] }
次のテンプレートをインスタンスロールにコピーして、Parameter Store AWS Systems Manager からパラメータを参照するアクセス許可を追加します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetParameters" ], "Resource": [ "arn:aws:ssm:<region>:<aws_account_id>:parameter/<parameter_name>" ] } ] }