

AWS App Runner は新規顧客に公開されなくなりました。既存のお客様は、通常どおりサービスを引き続き使用できます。詳細については、「[AWS App Runner  可用性の変更](https://docs.aws.amazon.com/apprunner/latest/dg/apprunner-availability-change.html)」を参照してください。

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

# 環境変数の参照
<a name="env-variable"></a>

App Runner を使用すると、サービス[の作成](manage-create.md)時またはサービス[の更新](manage-configure.md)時に、シークレットと設定をサービス内の環境変数として参照できます。

タイムアウトや再試行回数などの機密性のない設定データは、キーと値のペアとして**プレーンテキスト**で参照できます。**プレーンテキスト**で参照する設定データは暗号化されず、App Runner サービス設定とアプリケーションログで他のユーザーに表示されます。

**注記**  
セキュリティ上の理由から、App Runner サービスの**プレーンテキスト**で機密データを参照しないでください。

## 機密データを環境変数として参照する
<a name="env-variable.sensitivedata"></a>

App Runner は、機密データをサービス内の環境変数として安全に参照することをサポートしています。参照する機密データを *AWS Secrets Manager*または *AWS Systems Manager Parameter Store* に保存することを検討してください。その後、App Runner コンソールから、または API を呼び出して、サービス内の環境変数として安全に参照できます。これにより、シークレットとパラメータの管理がアプリケーションコードとサービス設定から効果的に分離され、App Runner で実行されているアプリケーションの全体的なセキュリティが向上します。

**注記**  
App Runner では、Secrets Manager と SSM パラメータストアを環境変数として参照しても料金は発生しません。ただし、Secrets Manager と SSM パラメータストアの使用には標準料金がかかります。  
料金の詳細については、以下を参照してください。  
 [AWS Secrets Manager の料金](https://aws.amazon.com/secrets-manager/pricing)
 [AWS SSM パラメータストアの料金 ](https://aws.amazon.com/systems-manager/pricing) 

 以下は、機密データを環境変数として参照するプロセスです。

1. API キー、データベース認証情報、データベース接続パラメータ、アプリケーションバージョンなどの機密データをシークレットまたはパラメータとして AWS Secrets Manager または AWS Systems Manager パラメータストアに保存します。

1. App Runner が Secrets Manager と SSM パラメータストアに保存されているシークレットとパラメータにアクセスできるように、インスタンスロールの IAM ポリシーを更新します。詳細については、[アクセス許可](#env-variable.sensitivedata.permissions)を参照してください。

1. 名前を割り当てて Amazon リソースネーム (ARN) を指定することで、シークレットとパラメータを環境変数として安全に参照します。サービス[を作成するとき、またはサービス](manage-create.md)[の設定を更新するときに、](manage-configure.md)環境変数を追加できます。次のいずれかのオプションを使用して、環境変数を追加できます。
   +  App Runner コンソール 
   +  App Runner API 
   +  `apprunner.yaml` 設定ファイル 
**注記**  
App Runner サービスを作成または更新するときに、 を環境変数の名前`PORT`として割り当てることはできません。これは App Runner サービスの予約済み環境変数です。

   シークレットとパラメータを参照する方法の詳細については、[「環境変数の管理](env-variable-manage.md)」を参照してください。

**注記**  
 App Runner はシークレットとパラメータ ARNs への参照のみを保存するため、機密データは App Runner サービス設定とアプリケーションログの他のユーザーには表示されません。

## 考慮事項
<a name="env-variable.sensitivedata.considerations"></a>
+  AWS Secrets Manager または Parameter Store の AWS Systems Manager シークレットとパラメータにアクセスするための適切なアクセス許可でインスタンスロールを更新してください。詳細については、[アクセス許可](#env-variable.sensitivedata.permissions)を参照してください。
+  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 を指定します。

## アクセス許可
<a name="env-variable.sensitivedata.permissions"></a>

 AWS Secrets Manager または SSM パラメータストアに保存されているシークレットとパラメータの参照を有効にするには、*インスタンスロール*の IAM ポリシーに適切なアクセス許可を追加して、Secrets Manager と SSM パラメータストアにアクセスします。

**注記**  
 App Runner は、 アクセス許可がないと アカウントのリソースにアクセスできません。アクセス許可を指定するには、IAM ポリシーを更新します。

次のポリシーテンプレートを使用して、IAM コンソールでインスタンスロールを更新できます。これらのポリシーテンプレートは、特定の要件を満たすように変更できます。インスタンスロールの更新の詳細については、*IAM* [ユーザーガイドの「ロールの変更](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html)」を参照してください。

**注記**  
[環境変数を作成する](env-variable-manage.md#env-variable-manage.console)ときに、App Runner コンソールから次のテンプレートをコピーすることもできます。

次のテンプレートをインスタンスロールにコピーして、 から*シークレット*を参照するアクセス許可を追加します*AWS Secrets Manager*。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "secretsmanager:GetSecretValue",
            "kms:Decrypt*"
        ],
        "Resource": [
            "arn:aws:secretsmanager:{{us-east-1}}:{{111122223333}}:{{secret}}:{{my-secret}}",
            "arn:aws:kms:{{us-east-1}}:{{111122223333}}:{{key}}/{{my-key}}"
         ]
     }
   ]
}
```

------

次のテンプレートをインスタンスロールにコピーして、Parameter Store *AWS Systems Manager* から*パラメータ*を参照するアクセス許可を追加します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetParameters"
            ],
            "Resource": [
            "arn:aws:ssm:{{us-east-1}}:{{111122223333}}:{{parameter}}/{{my-parameter}}"
            ]
        }
    ]
}
```

------