

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 參數存放*區中存放您要參考的敏感資料。然後，您可以從 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. 在 或 AWS Secrets Manager AWS Systems Manager 參數存放區中，將 API 金鑰、資料庫登入資料、資料庫連線參數或應用程式版本等敏感資料儲存為秘密或參數。

1. 更新執行個體角色的 IAM 政策，讓 App Runner 可以存取存放在 Secrets Manager 和 SSM 參數存放區中的秘密和參數。如需詳細資訊，請參閱 [ 許可](#env-variable.sensitivedata.permissions)。

1. 透過指派名稱並提供其 Amazon Resource Name (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 或 中的 AWS Systems Manager 秘密和參數。如需詳細資訊，請參閱 [ 許可](#env-variable.sensitivedata.permissions)。
+ 請確定 AWS Systems Manager 參數存放區與您要啟動或更新 AWS 帳戶 的服務位於相同的 中。目前，您無法跨帳戶參考 SSM 參數存放區參數。
+ 當秘密和參數值輪換或變更時，它們不會在您的 App Runner 服務中自動更新。重新部署您的 App Runner 服務，因為 App Runner 只會在部署期間提取秘密和參數。
+ 您也可以選擇透過 App Runner 服務中的 SDK 直接呼叫 AWS Secrets Manager 和 AWS Systems Manager 參數存放區。
+ 為了避免錯誤，在將它們參考為環境變數時，請確定下列事項：
  + 您可以指定秘密的正確 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}}"
         ]
     }
   ]
}
```

------

將下列範本複製到執行個體角色，以新增從*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}}"
            ]
        }
    ]
}
```

------