

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

# 建立 AD 基礎設施
<a name="tutorials_05_multi-user-ad-step1"></a>

選擇*自動化*索引標籤，使用 CloudFormation 快速建立範本建立 Active Directory (AD) 基礎設施。

選擇*手動*索引標籤以手動建立 AD 基礎設施。

## 自動化
<a name="tutorials_05_multi-user-ad-step1-automated"></a>

1. 登入 AWS 管理主控台。

1. 開啟 [CloudFormation Quick Create (region us-east-1)](https://us-east-1.console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/create/review?stackName=pcluster-ad&templateURL=https://us-east-1-aws-parallelcluster.s3.amazonaws.com/templates/1-click/ad-integration.yaml)，以在 CloudFormation 主控台中建立下列資源：
   + 如果未指定 VPC，則具有兩個子網路和路由以進行公開存取的 VPC。
   +  AWS Managed Microsoft AD。
   + 加入 AD 的 Amazon EC2 執行個體，可用來管理目錄。

1. 在**快速建立堆疊**頁面**參數**區段中，輸入下列參數的密碼：
   + **AdminPassword**
   + **ReadOnlyPassword**
   + **UserPassword**

   請記下密碼。您稍後在本教學課程中使用它們。

1. 針對 **DomainName**，輸入 **corp.example.com**

1. 針對 **Keypair**，輸入 Amazon EC2 金鑰對的名稱。

1. 勾選方塊以確認頁面底部的每個存取功能。

1. 選擇**建立堆疊**。

1. 在 CloudFormation 堆疊達到 `CREATE_COMPLETE` 狀態後，選擇堆疊的**輸出**索引標籤。請記下輸出資源名稱和 IDs，因為您需要在後續步驟中使用它們。輸出提供建立叢集所需的資訊。  
![\[圖表顯示 中建立的堆疊輸出 AWS 管理主控台。\]](http://docs.aws.amazon.com/zh_tw/parallelcluster/latest/ug/images/ad-cfn.png)

1. 若要完成練習 [（選用） 管理 AD 使用者和群組](tutorials_05_multi-user-ad-step2.md)，您需要目錄 ID。選擇**資源**並向下捲動以記下目錄 ID。

1. 在 [（選用） 管理 AD 使用者和群組](tutorials_05_multi-user-ad-step2.md)或 繼續[建立叢集](tutorials_05_multi-user-ad-step3.md)。

## 手動
<a name="tutorials_05_multi-user-ad-step1-manual"></a>

為目錄服務建立 VPC，其中兩個子網路位於不同的可用區域和 AWS Managed Microsoft AD。

### 建立 AD
<a name="tutorials_05_multi-user-ad-step1-manual-ad"></a>

**注意**  
目錄和網域名稱為 `corp.example.com`。簡短名稱為 `CORP`。
變更指令碼中的`Admin`密碼。
Active Directory (AD) 至少需要 15 分鐘才能建立。

使用下列 Python 指令碼在本機建立 VPC、子網路和 AD 資源 AWS 區域。將此檔案儲存為 `ad.py` 並執行。

```
import boto3
import time
from pprint import pprint

vpc_name = "PclusterVPC"
ad_domain = "corp.example.com"
admin_password = "asdfASDF1234"

ec2 = boto3.client("ec2")
ds = boto3.client("ds")
region = boto3.Session().region_name

# Create the VPC, Subnets, IGW, Routes
vpc = ec2.create_vpc(CidrBlock="10.0.0.0/16")["Vpc"]
vpc_id = vpc["VpcId"]
time.sleep(30)
ec2.create_tags(Resources=[vpc_id], Tags=[{"Key": "Name", "Value": vpc_name}])
subnet1 = ec2.create_subnet(VpcId=vpc_id, CidrBlock="10.0.0.0/17", AvailabilityZone=f"{region}a")["Subnet"]
subnet1_id = subnet1["SubnetId"]
time.sleep(30)
ec2.create_tags(Resources=[subnet1_id], Tags=[{"Key": "Name", "Value": f"{vpc_name}/subnet1"}])
ec2.modify_subnet_attribute(SubnetId=subnet1_id, MapPublicIpOnLaunch={"Value": True})
subnet2 = ec2.create_subnet(VpcId=vpc_id, CidrBlock="10.0.128.0/17", AvailabilityZone=f"{region}b")["Subnet"]
subnet2_id = subnet2["SubnetId"]
time.sleep(30)
ec2.create_tags(Resources=[subnet2_id], Tags=[{"Key": "Name", "Value": f"{vpc_name}/subnet2"}])
ec2.modify_subnet_attribute(SubnetId=subnet2_id, MapPublicIpOnLaunch={"Value": True})
igw = ec2.create_internet_gateway()["InternetGateway"]
ec2.attach_internet_gateway(InternetGatewayId=igw["InternetGatewayId"], VpcId=vpc_id)
route_table = ec2.describe_route_tables(Filters=[{"Name": "vpc-id", "Values": [vpc_id]}])["RouteTables"][0]
ec2.create_route(RouteTableId=route_table["RouteTableId"], DestinationCidrBlock="0.0.0.0/0", GatewayId=igw["InternetGatewayId"])
ec2.modify_vpc_attribute(VpcId=vpc_id, EnableDnsSupport={"Value": True})
ec2.modify_vpc_attribute(VpcId=vpc_id, EnableDnsHostnames={"Value": True})

# Create the Active Directory
ad = ds.create_microsoft_ad(
    Name=ad_domain,
    Password=admin_password,
    Description="ParallelCluster AD",
    VpcSettings={"VpcId": vpc_id, "SubnetIds": [subnet1_id, subnet2_id]},
    Edition="Standard",
)
directory_id = ad["DirectoryId"]

# Wait for completion
print("Waiting for the directory to be created...")
directories = ds.describe_directories(DirectoryIds=[directory_id])["DirectoryDescriptions"]
directory = directories[0]
while directory["Stage"] in {"Requested", "Creating"}:
    time.sleep(3)
    directories = ds.describe_directories(DirectoryIds=[directory_id])["DirectoryDescriptions"]
    directory = directories[0]
    
dns_ip_addrs = directory["DnsIpAddrs"]

pprint({"directory_id": directory_id,
        "vpc_id": vpc_id,
        "subnet1_id": subnet1_id,
        "subnet2_id": subnet2_id,
        "dns_ip_addrs": dns_ip_addrs})
```

以下是 Python 指令碼的範例輸出。

```
{
  "directory_id": "d-abcdef01234567890",
  "dns_ip_addrs": ["192.0.2.254", "203.0.113.237"],
  "subnet1_id": "subnet-021345abcdef6789",
  "subnet2_id": "subnet-1234567890abcdef0",
  "vpc_id": "vpc-021345abcdef6789"
}
```

記下輸出資源名稱和 IDs。您可以在後續步驟中使用它們。

指令碼完成後，請繼續下一個步驟。

### 建立 Amazon EC2 執行個體
<a name="tutorials_05_multi-user-ad-step1-manual-instance"></a>

------
#### [ New Amazon EC2 console ]

1. 登入 AWS 管理主控台。

1. 如果您沒有連接步驟 4 中所列政策的角色，請開啟位於 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 的 IAM 主控台。否則，請跳至步驟 5。

1. 建立`ResetUserPassword`政策，將紅色反白顯示的內容取代為您執行以建立 AD 之指令碼輸出的 AWS 區域 ID、帳戶 ID 和目錄 ID。

   ResetUserPassword

   ```
   {
          "Statement": [
           {
               "Action": [
                   "ds:ResetUserPassword"
               ],
               "Resource": "arn:aws:ds:region-id:123456789012:directory/d-abcdef01234567890",
               "Effect": "Allow"
           }
       ]
   }
   ```

1. 建立已連接下列政策的 IAM 角色。
   + AWS 受管政策 [AmazonSSMManagedInstanceCore](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore)
   + AWS 受管政策 [AmazonSSMDirectoryServiceAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AmazonSSMDirectoryServiceAccess)
   + ResetUserPassword 政策

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在 **Amazon EC2 儀表板**中，選擇**啟動執行個體**。

1. 在**應用程式和作業系統映像**中，選取最近的 Amazon Linux 2 AMI。

1. 針對**執行個體類型**，選擇 t2.micro。

1. 針對**金鑰對**，選擇金鑰對。

1. 針對**網路設定**，選擇**編輯**。

1. 針對 **VPC**，選取目錄 VPC。

1. 向下捲動並選取**進階詳細資訊**。

1. 在**進階詳細資訊**的**網域聯結目錄中**，選擇 **corp.example.com**。

1. 針對 **IAM 執行個體描述檔**，選擇您在步驟 1 中建立的角色，或連接步驟 4 中列出政策的角色。

1. 在**摘要**中，選擇**啟動執行個體**。

1. 請記下執行個體 ID （例如 i-1234567890abcdef0)，並等待執行個體完成啟動。

1. 執行個體啟動後，請繼續下一個步驟。

------
#### [ Old Amazon EC2 console ]

1. 登入 AWS 管理主控台。

1. 如果您沒有連接步驟 4 中所列政策的角色，請開啟位於 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 的 IAM 主控台。否則，請跳至步驟 5。

1. 建立 `ResetUserPassword` 政策。將紅色反白內容取代為您執行的指令碼輸出中的 AWS 區域 ID、 AWS 帳戶 ID 和目錄 ID，以建立 Active Directory (AD)。

   ResetUserPassword

   ```
   {
           "Statement": [
               {
                   "Action": [
                       "ds:ResetUserPassword"
                   ],
                   "Resource": "arn:aws:ds:region-id:123456789012:directory/d-abcdef01234567890",
                   "Effect": "Allow"
               }
           ]
        }
   ```

1. 建立已連接下列政策的 IAM 角色。
   + AWS 受管政策 [AmazonSSMManagedInstanceCore](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore)
   + AWS 受管政策 [AmazonSSMDirectoryServiceAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AmazonSSMDirectoryServiceAccess)
   + ResetUserPassword 政策

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在 **Amazon EC2 儀表板**中，選擇**啟動執行個體**。

1. 在**應用程式和作業系統映像**中，選取最近的 Amazon Linux 2 AMI。

1. 對於 **Instance type (執行個體類型)**，選擇 t2.micro。

1. 針對**金鑰對**，選擇金鑰對。

1. 在**網路設定**中，選擇**編輯**。

1. 在**網路設定** **VPC** 中，選取目錄 VPC。

1. 向下捲動並選取**進階詳細資訊**。

1. 在**進階詳細資訊**的**網域聯結目錄中**，選擇 **corp.example.com**。

1. 在**進階詳細資訊**、**執行個體描述**檔中，選擇您在步驟 1 中建立的角色，或使用連接步驟 4 中所列政策的角色。

1. 在**摘要**中，選擇**啟動執行個體**。

1. 請記下執行個體 ID （例如 i-1234567890abcdef0)，並等待執行個體完成啟動。

1. 執行個體啟動後，請繼續下一個步驟。

------

### 將執行個體加入 AD
<a name="tutorials_05_multi-user-ad-step1-manual-join"></a>

1. 

**連線至您的執行個體，並以 身分加入 AD 領域`admin`。**

   執行下列命令以連線至執行個體。

   ```
   $ INSTANCE_ID="i-1234567890abcdef0"
   ```

   ```
   $ PUBLIC_IP=$(aws ec2 describe-instances \
   --instance-ids $INSTANCE_ID \
   --query "Reservations[0].Instances[0].PublicIpAddress" \
   --output text)
   ```

   ```
   $ ssh -i ~/.ssh/keys/keypair.pem ec2-user@$PUBLIC_IP
   ```

1. 

**安裝必要的軟體並加入領域。**

   ```
   $ sudo yum -y install sssd realmd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation openldap-clients policycoreutils-python
   ```

1. 

**將管理員密碼取代為`admin`您的密碼。**

   ```
   $ ADMIN_PW="asdfASDF1234"
   ```

   ```
   $ echo $ADMIN_PW | sudo realm join -U Admin corp.example.com
   Password for Admin:
   ```

   如果上述 成功，您就會加入領域，並且可以繼續進行下一個步驟。

### 將使用者新增至 AD
<a name="tutorials_05_multi-user-ad-step1-manual-join-add-users"></a>

1. 

**建立 ReadOnlyUser 和其他使用者。**

   在此步驟中，您會使用您在上一個步驟中安裝的 [adcli](https://www.mankier.com/package/adcli) 和 [openldap-clients](https://www.mankier.com/package/openldap-clients) 工具。

   ```
   $ echo $ADMIN_PW | adcli create-user -x -U Admin --domain=corp.example.com --display-name=ReadOnlyUser ReadOnlyUser
   ```

   ```
   $ echo $ADMIN_PW | adcli create-user -x -U Admin --domain=corp.example.com --display-name=user000 user000
   ```

1. **確認已建立使用者：**

   目錄 DNS IP 地址是 Python 指令碼的輸出。

   ```
   $ DIRECTORY_IP="192.0.2.254"
   ```

   ```
   $ ldapsearch -x -h $DIRECTORY_IP -D Admin -w $ADMIN_PW -b "cn=ReadOnlyUser,ou=Users,ou=CORP,dc=corp,dc=example,dc=com"
   ```

   ```
   $ ldapsearch -x -h $DIRECTORY_IP -D Admin -w $ADMIN_PW -b "cn=user000,ou=Users,ou=CORP,dc=corp,dc=example,dc=com"
   ```

   根據預設，當您使用 建立使用者時`ad-cli`，使用者會停用。

1. 

****從本機電腦重設和啟用使用者密碼：****

   登出 Amazon EC2 執行個體。
**注意**  
`ro-p@ssw0rd` 是從 `ReadOnlyUser`擷取的密碼 AWS Secrets Manager。
`user-p@ssw0rd` 是在您將 (`ssh`) 連線到叢集時提供的叢集使用者密碼。

   `directory-id` 是 Python 指令碼的輸出。

   ```
   $ DIRECTORY_ID="d-abcdef01234567890"
   ```

   ```
   $ aws ds reset-user-password \
   --directory-id $DIRECTORY_ID \
   --user-name "ReadOnlyUser" \
   --new-password "ro-p@ssw0rd" \
   --region "region-id"
   ```

   ```
   $ aws ds reset-user-password \
   --directory-id $DIRECTORY_ID \
   --user-name "user000" \
   --new-password "user-p@ssw0rd" \
   --region "region-id"
   ```

1. **將密碼新增至 Secrets Manager 秘密。**

   現在您已建立 `ReadOnlyUser`並設定密碼，請將它存放在 AWS ParallelCluster 用於驗證登入的秘密中。

   使用 Secrets Manager 建立新的秘密，將 的密碼保留`ReadOnlyUser`為 值。秘密值格式必須是純文字 （而非 JSON 格式）。記下秘密 ARN 以供未來步驟使用。

   ```
   $ aws secretsmanager create-secret --name "ADSecretPassword" \
   --region region_id \
   --secret-string "ro-p@ssw0rd" \
   --query ARN \
   --output text
   arn:aws:secretsmanager:region-id:123456789012:secret:ADSecretPassword-1234
   ```

### 具有憑證驗證 （建議） 設定的 LDAPS
<a name="tutorials_05_multi-user-ad-step1-manual-ldaps"></a>

記下資源 IDs。您稍後會在步驟中使用它們。

1. 

**在本機產生網域憑證。**

   ```
   $ PRIVATE_KEY="corp-example-com.key"
   CERTIFICATE="corp-example-com.crt"
   printf ".\n.\n.\n.\n.\ncorp.example.com\n.\n" | openssl req -x509 -sha256 -nodes -newkey rsa:2048 -keyout $PRIVATE_KEY -days 365 -out $CERTIFICATE
   ```

1. 

**將憑證儲存到 Secrets Manager，以便稍後可從叢集內擷取。**

   ```
   $ aws secretsmanager create-secret --name example-cert \
     --secret-string file://$CERTIFICATE \
     --region region-id
   {
     "ARN": "arn:aws:secretsmanager:region-id:123456789012:secret:example-cert-123abc",
     "Name": "example-cert",
     "VersionId": "14866070-092a-4d5a-bcdd-9219d0566b9c"
   }
   ```

1. 將下列政策新增至您建立的 IAM 角色，以將 Amazon EC2 執行個體加入 AD 網域。

   `PutDomainCertificateSecrets`

   ```
   {
       "Statement": [
           {
               "Action": [
                   "secretsmanager:PutSecretValue"
               ],
               "Resource": [
                   "arn:aws:secretsmanager:region-id:123456789012:secret:example-cert-123abc"
               ],
               "Effect": "Allow"
           }
       ]
   }
   ```

1. 

**將憑證匯入至 AWS Certificate Manager (ACM)。**

   ```
   $ aws acm import-certificate --certificate fileb://$CERTIFICATE \
     --private-key fileb://$PRIVATE_KEY \
     --region region-id
   {
     "CertificateArn": "arn:aws:acm:region-id:123456789012:certificate/343db133-490f-4077-b8d4-3da5bfd89e72"
   }
   ```

1. 

**建立 和放在 Active Directory 端點前面的負載平衡器。**

   ```
   $ aws elbv2 create-load-balancer --name CorpExampleCom-NLB \
     --type network \
     --scheme internal \
     --subnets subnet-1234567890abcdef0 subnet-021345abcdef6789 \
     --region region-id
   {
     "LoadBalancers": [
       {
         "LoadBalancerArn": "arn:aws:elasticloadbalancing:region-id:123456789012:loadbalancer/net/CorpExampleCom-NLB/3afe296bf4ba80d4",
         "DNSName": "CorpExampleCom-NLB-3afe296bf4ba80d4.elb.region-id.amazonaws.com",
         "CanonicalHostedZoneId": "Z2IFOLAFXWLO4F",
         "CreatedTime": "2022-05-05T12:56:55.988000+00:00",
         "LoadBalancerName": "CorpExampleCom-NLB",
         "Scheme": "internal",
         "VpcId": "vpc-021345abcdef6789",
         "State": {
           "Code": "provisioning"
          },
          "Type": "network",
          "AvailabilityZones": [
            {
              "ZoneName": "region-idb",
              "SubnetId": "subnet-021345abcdef6789",
              "LoadBalancerAddresses": []
            },
            {
              "ZoneName": "region-ida",
              "SubnetId": "subnet-1234567890abcdef0",
              "LoadBalancerAddresses": []
            }
          ],
          "IpAddressType": "ipv4"
       }   
     ]
   }
   ```

1. 

**建立目標為 Active Directory 端點的目標群組。**

   ```
   $ aws elbv2 create-target-group --name CorpExampleCom-Targets --protocol TCP \
     --port 389 \
     --target-type ip \
     --vpc-id vpc-021345abcdef6789 \
     --region region-id
   {
     "TargetGroups": [
       {
         "TargetGroupArn": "arn:aws:elasticloadbalancing:region-id:123456789012:targetgroup/CorpExampleCom-Targets/44577c583b695e81",
         "TargetGroupName": "CorpExampleCom-Targets",
         "Protocol": "TCP",
         "Port": 389,
         "VpcId": "vpc-021345abcdef6789",
         "HealthCheckProtocol": "TCP",
         "HealthCheckPort": "traffic-port",
         "HealthCheckEnabled": true,
         "HealthCheckIntervalSeconds": 30,
         "HealthCheckTimeoutSeconds": 10,
         "HealthyThresholdCount": 3,
         "UnhealthyThresholdCount": 3,
         "TargetType": "ip",
         "IpAddressType": "ipv4"
       }
     ]
   }
   ```

1. 

**將 Active Directory (AD) 端點註冊到目標群組。**

   ```
   $ aws elbv2 register-targets --target-group-arn arn:aws:elasticloadbalancing:region-id:123456789012:targetgroup/CorpExampleCom-Targets/44577c583b695e81 \
     --targets Id=192.0.2.254,Port=389 Id=203.0.113.237,Port=389 \
     --region region-id
   ```

1. 

**使用憑證建立 LB 接聽程式。**

   ```
   $ aws elbv2 create-listener --load-balancer-arn arn:aws:elasticloadbalancing:region-id:123456789012:loadbalancer/net/CorpExampleCom-NLB/3afe296bf4ba80d4 \
     --protocol TLS \
     --port 636 \
     --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:region-id:123456789012:targetgroup/CorpExampleCom-Targets/44577c583b695e81 \
     --ssl-policy ELBSecurityPolicy-TLS-1-2-2017-01 \
     --certificates CertificateArn=arn:aws:acm:region-id:123456789012:certificate/343db133-490f-4077-b8d4-3da5bfd89e72 \
     --region region-id
     "Listeners": [
     {
       "ListenerArn": "arn:aws:elasticloadbalancing:region-id:123456789012:listener/net/CorpExampleCom-NLB/3afe296bf4ba80d4/a8f9d97318743d4b",
       "LoadBalancerArn": "arn:aws:elasticloadbalancing:region-id:123456789012:loadbalancer/net/CorpExampleCom-NLB/3afe296bf4ba80d4",
       "Port": 636,
       "Protocol": "TLS",
       "Certificates": [
         {
           "CertificateArn": "arn:aws:acm:region-id:123456789012:certificate/343db133-490f-4077-b8d4-3da5bfd89e72"
          }
        ],
        "SslPolicy": "ELBSecurityPolicy-TLS-1-2-2017-01",
        "DefaultActions": [
          {
            "Type": "forward",
            "TargetGroupArn": "arn:aws:elasticloadbalancing:region-id:123456789012:targetgroup/CorpExampleCom-Targets/44577c583b695e81",
            "ForwardConfig": {
              "TargetGroups": [
                {
                   "TargetGroupArn": "arn:aws:elasticloadbalancing:region-id:123456789012:targetgroup/CorpExampleCom-Targets/44577c583b695e81"
                 }
               ]
             }
           }
         ]
       }
     ]
   }
   ```

1. 

**建立託管區域，以在叢集 VPC 中探索網域。**

   ```
   $ aws route53 create-hosted-zone --name corp.example.com \
     --vpc VPCRegion=region-id,VPCId=vpc-021345abcdef6789 \
     --caller-reference "ParallelCluster AD Tutorial"
   {
     "Location": "https://route53.amazonaws.com/2013-04-01/hostedzone/Z09020002B5MZQNXMSJUB",
     "HostedZone": {
       "Id": "/hostedzone/Z09020002B5MZQNXMSJUB",
       "Name": "corp.example.com.",
       "CallerReference": "ParallelCluster AD Tutorial",
       "Config": {
            "PrivateZone": true
       },
       "ResourceRecordSetCount": 2
     },
     "ChangeInfo": {
       "Id": "/change/C05533343BF3IKSORW1TQ",
       "Status": "PENDING",
       "SubmittedAt": "2022-05-05T13:21:53.863000+00:00"
     },
     "VPC": {
       "VPCRegion": "region-id",
       "VPCId": "vpc-021345abcdef6789"
     }
   }
   ```

1. 

**使用`recordset-change.json`下列內容建立名為 的檔案。 `HostedZoneId`是負載平衡器的正式託管區域 ID。**

   ```
   {
     "Changes": [
       {
         "Action": "CREATE",
         "ResourceRecordSet": {
           "Name": "corp.example.com",
           "Type": "A",
           "Region": "region-id",
           "SetIdentifier": "example-active-directory",
           "AliasTarget": {
             "HostedZoneId": "Z2IFOLAFXWLO4F",
             "DNSName": "CorpExampleCom-NLB-3afe296bf4ba80d4.elb.region-id.amazonaws.com",
             "EvaluateTargetHealth": true
           }
         }
       }
     ]
   }
   ```

1. 

**將記錄集變更提交至託管區域，這次使用託管區域 ID。**

   ```
   $ aws route53 change-resource-record-sets --hosted-zone-id Z09020002B5MZQNXMSJUB \
     --change-batch file://recordset-change.json
   {
     "ChangeInfo": {
       "Id": "/change/C0137926I56R3GC7XW2Y",
       "Status": "PENDING",
       "SubmittedAt": "2022-05-05T13:40:36.553000+00:00"
     }
   }
   ```

1. 

**使用`policy.json`下列內容建立政策文件。**

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Action": [
                   "secretsmanager:GetSecretValue"
               ],
               "Resource": [
                   "arn:aws:secretsmanager:us-east-1:123456789012:secret:example-cert-abc123"
               ],
               "Effect": "Allow"
           }
       ]
   }
   ```

------

1. 

**使用`policy.json`下列內容建立名為 的政策文件。**

   ```
   $ aws iam create-policy --policy-name ReadCertExample \
     --policy-document file://policy.json
   {
     "Policy": {
       "PolicyName": "ReadCertExample",
       "PolicyId": "ANPAUUXUVBC42VZSI4LDY",
       "Arn": "arn:aws:iam::123456789012:policy/ReadCertExample-efg456",
       "Path": "/",
       "DefaultVersionId": "v1",
       "AttachmentCount": 0,
       "PermissionsBoundaryUsageCount": 0,
       "IsAttachable": true,
       "CreateDate": "2022-05-05T13:42:18+00:00",
       "UpdateDate": "2022-05-05T13:42:18+00:00"
     }
   }
   ```

1. 繼續遵循 [（選用） 管理 AD 使用者和群組](tutorials_05_multi-user-ad-step2.md)或 中的步驟[建立叢集](tutorials_05_multi-user-ad-step3.md)。