

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 為 Amazon RDS 建立代理
<a name="rds-proxy-creating"></a>

您可以將代理與 RDS for MariaDB、RDS for Microsoft SQL Server、RDS for MySQL 或 RDS for PostgreSQL 資料庫執行個體建立關聯。

## 主控台
<a name="rds-proxy-creating.console"></a>

**若要建立代理**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)：// 開啟 Amazon RDS 主控台。

1. 在導覽窗格中，選擇 **Proxies** (代理)。

1. 選擇**Create Proxy (建立代理)**。

1. 針對您的代理使用以下設定。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/rds-proxy-creating.html)

1.  選擇**Create Proxy (建立代理)**。

## AWS CLI
<a name="rds-proxy-creating.CLI"></a>

 若要使用 建立代理 AWS CLI，請使用下列必要參數呼叫 [create-db-proxy](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-proxy.html) 命令：
+ `--db-proxy-name`
+ `--engine-family`
+ `--role-arn`
+ `--vpc-subnet-ids`

`--engine-family` 值會區分大小寫。

**Example**  
對於 Linux、macOS 或 Unix：  

```
aws rds create-db-proxy \
    --db-proxy-name proxy_name \
    --engine-family { MYSQL | POSTGRESQL | SQLSERVER } \
    --role-arn iam_role \
    --vpc-subnet-ids space_separated_list \
    [--default-auth-scheme { NONE | IAM_AUTH }] \
    [--auth ProxyAuthenticationConfig_JSON_string] \
    [--vpc-security-group-ids space_separated_list] \
    [--require-tls | --no-require-tls] \
    [--idle-client-timeout value] \
    [--debug-logging | --no-debug-logging] \
    [--endpoint-network-type { IPV4 | IPV6 | DUAL }] \
    [--target-connection-network-type { IPV4 | IPV6 }] \
    [--tags comma_separated_list]
```
在 Windows 中：  

```
aws rds create-db-proxy ^
    --db-proxy-name proxy_name ^
    --engine-family { MYSQL | POSTGRESQL | SQLSERVER } ^
    --role-arn iam_role ^
    --vpc-subnet-ids space_separated_list ^
    [--default-auth-scheme { NONE | IAM_AUTH }] ^
    [--auth ProxyAuthenticationConfig_JSON_string] ^
    [--vpc-security-group-ids space_separated_list] ^
    [--require-tls | --no-require-tls] ^
    [--idle-client-timeout value] ^
    [--debug-logging | --no-debug-logging] ^
    [--endpoint-network-type { IPV4 | IPV6 | DUAL }] ^
    [--target-connection-network-type { IPV4 | IPV6 }] ^
    [--tags comma_separated_list]
```

下列範例是 `--auth` 選項的 JSON 值。此範例會將不同的用戶端身分驗證類型套用至每個秘密。

```
[
  {
    "Description": "proxy description 1",
    "AuthScheme": "SECRETS",
    "SecretArn": "arn:aws:secretsmanager:us-west-2:123456789123:secret/1234abcd-12ab-34cd-56ef-1234567890ab",
    "IAMAuth": "DISABLED",
    "ClientPasswordAuthType": "POSTGRES_SCRAM_SHA_256"
  },
  
  {
    "Description": "proxy description 2",
    "AuthScheme": "SECRETS",
    "SecretArn": "arn:aws:secretsmanager:us-west-2:111122223333:secret/1234abcd-12ab-34cd-56ef-1234567890cd",
    "IAMAuth": "DISABLED",
    "ClientPasswordAuthType": "POSTGRES_MD5"
    
  },
  
  {
    "Description": "proxy description 3",
    "AuthScheme": "SECRETS",
    "SecretArn": "arn:aws:secretsmanager:us-west-2:111122221111:secret/1234abcd-12ab-34cd-56ef-1234567890ef",
    "IAMAuth": "REQUIRED"
  }
  
]
```

`--endpoint-network-type` 參數會指定用戶端用來連線至代理的代理端點 IP 版本。有效的值如下：
+ `IPV4` – 代理端點僅使用 IPv4 位址 (預設值)。
+ `IPV6` – 代理端點僅使用 IPv6 位址。
+ `DUAL` – 代理端點同時支援 IPv4 和 IPv6 位址。

`--target-connection-network-type` 參數會指定代理用來連線至目標資料庫的 IP 版本。有效的值如下：
+ `IPV4` – 代理會使用 IPv4 位址連線至資料庫 (預設值)。
+ `IPV6` – 代理會使用 IPv6 位址連線至資料庫。

若要使用 IPv6 或雙堆疊端點網路類型，您的 VPC 和子網路必須設定為支援選取的網路類型。若要使用 IPv6 目標連線網路類型，您的資料庫必須支援雙堆疊模式。

**提示**  
 如果您還不知道要用於 `--vpc-subnet-ids` 參數的子網路 ID，請參閱 [設定 RDS Proxy 的網路先決條件](rds-proxy-network-prereqs.md) 以取得如何尋找它們的範例。

**注意**  
安全群組必須允許存取代理連線的目標資料庫。相同的安全群組會用於從應用程式到代理的輸入，以及從代理到資料庫的輸出。例如，假設您將同一個安全群組用於您的資料庫和代理。在這種情況下，請務必指定安全群組中的資源能與同一個安全群組中的其他資源進行通訊。  
使用共用 VPC 時，您無法使用 VPC 的預設安全群組，或屬於另一個帳戶的預設安全群組。選擇屬於您帳戶的安全群組。如果沒有，請先建立一個。如需此限制的詳細資訊，請參閱[使用共用的 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-sharing.html#vpc-share-limitations)。

 若要建立代理的正確關聯，您也需要使用 [register-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/register-db-proxy-targets.html) 命令。指定目標群組類型 `default`。RDS Proxy 會在您建立每個代理時，自動建立的目標群組。

```
aws rds register-db-proxy-targets
    --db-proxy-name value
    [--target-group-name target_group_name]
    [--db-instance-identifiers space_separated_list]  # rds db instances, or
    [--db-cluster-identifiers cluster_id]        # rds db cluster (all instances)
```

## RDS API
<a name="rds-proxy-creating.API"></a>

 若要建立 RDS 代理，請呼叫 Amazon RDS API 操作 [CreateDBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBProxy.html)。您傳遞具有 [AuthConfig](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_AuthConfig.html) 資料結構的參數。

 RDS Proxy 在您建立每個代理時，自動建立名為 `default` 的目標群組。您可以呼叫函數 [RegisterDBProxyTargets](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RegisterDBProxyTargets.html)，以將 RDS 資料庫執行個體與目標群組建立關聯。

**重要**  
當您為預設**身分驗證機制選取 IAM** 身分驗證時：  
您必須先在目標資料庫執行個體或叢集上啟用 IAM 資料庫身分驗證，代理才能成功連線。
如果您選擇**建立 IAM 角色**，IAM **身分驗證的資料庫帳戶**欄位為必要欄位。
如果您選取現有的 IAM 角色，主控台不會自動更新具有資料庫連線許可的角色。檢查角色是否具有必要的`rds-db:connect`許可。