

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

# 使用資源型政策建立叢集
<a name="rbp-create-cluster"></a>

您可以在建立新叢集時連接資源型政策，以確保存取控制從一開始就就緒。每個叢集可以有一個直接連接到叢集的內嵌政策。

## AWS 管理主控台
<a name="rbp-create-cluster-console"></a>

**在叢集建立期間新增資源型政策**

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

1. 選擇 **Create Cluster** (建立叢集)。

1. 視需要設定叢集名稱、標籤和多區域設定。

1. 在**叢集設定**區段中，找到以**資源為基礎的政策**選項。

1. 開啟**新增以資源為基礎的政策**。

1. 在 JSON 編輯器中輸入您的政策文件。例如，若要封鎖公有網際網路存取：

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Deny",
         "Principal": {
           "AWS": "*"
         },
         "Resource": "*",
         "Action": [
           "dsql:DbConnect",
           "dsql:DbConnectAdmin"
         ],
         "Condition": {
           "Null": {
             "aws:SourceVpc": "true"
           }
         }
       }
     ]
   }
   ```

1. 您可以使用**編輯陳述式**或**新增陳述**式來建置您的政策。

1. 完成剩餘的叢集組態，然後選擇**建立叢集**。

## AWS CLI
<a name="rbp-create-cluster-cli"></a>

建立叢集時，請使用 `--policy` 參數來連接內嵌政策：

```
aws dsql create-cluster --policy '{
    "Version": "2012-10-17",		 	 	 
    "Statement": [{
        "Effect": "Deny",
        "Principal": {"AWS": "*"},
        "Resource": "*",
        "Action": ["dsql:DbConnect", "dsql:DbConnectAdmin"],
        "Condition": { 
            "StringNotEquals": { "aws:SourceVpc": "vpc-123456" } 
        }
    }]
}'
```

## AWS SDKs
<a name="rbp-create-cluster-sdk"></a>

------
#### [ Python ]

```
import boto3
import json

client = boto3.client('dsql')

policy = {
    "Version": "2012-10-17",		 	 	 
    "Statement": [{
        "Effect": "Deny",
        "Principal": {"AWS": "*"},
        "Resource": "*",
        "Action": ["dsql:DbConnect", "dsql:DbConnectAdmin"],
        "Condition": { 
            "StringNotEquals": { "aws:SourceVpc": "vpc-123456" } 
        }
    }]
}

response = client.create_cluster(
    policy=json.dumps(policy)
)

print(f"Cluster created: {response['identifier']}")
```

------
#### [ Java ]

```
import software.amazon.awssdk.services.dsql.DsqlClient;
import software.amazon.awssdk.services.dsql.model.CreateClusterRequest;
import software.amazon.awssdk.services.dsql.model.CreateClusterResponse;

DsqlClient client = DsqlClient.create();

String policy = """
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [{
    "Effect": "Deny",
    "Principal": {"AWS": "*"},
    "Resource": "*",
    "Action": ["dsql:DbConnect", "dsql:DbConnectAdmin"],
    "Condition": { 
      "StringNotEquals": { "aws:SourceVpc": "vpc-123456" } 
    }
  }]
}
""";

CreateClusterRequest request = CreateClusterRequest.builder()
    .policy(policy)
    .build();

CreateClusterResponse response = client.createCluster(request);
System.out.println("Cluster created: " + response.identifier());
```

------