本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用資源型政策建立叢集
您可以在建立新叢集時連接資源型政策,以確保存取控制從一開始就就緒。每個叢集可以有一個直接連接到叢集的內嵌政策。
在叢集建立期間新增資源型政策
登入 AWS 管理主控台,並在 https://https://console.aws.amazon.com/dsql/ 開啟 Aurora DSQL 主控台。
選擇 Create Cluster (建立叢集)。
視需要設定叢集名稱、標籤和多區域設定。
在叢集設定區段中,找到以資源為基礎的政策選項。
開啟新增以資源為基礎的政策。
在 JSON 編輯器中輸入您的政策文件。例如,若要封鎖公有網際網路存取:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Principal": {
"AWS": "*"
},
"Resource": "*",
"Action": [
"dsql:DbConnect",
"dsql:DbConnectAdmin"
],
"Condition": {
"Null": {
"aws:SourceVpc": "true"
}
}
}
]
}
您可以使用編輯陳述式或新增陳述式來建置您的政策。
完成剩餘的叢集組態,然後選擇建立叢集。
建立叢集時,請使用 --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" }
}
}]
}'
- 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());