通过 LDAP 集成 Active Directory - Amazon ParallelCluster
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

通过 LDAP 集成 Active Directory

在本教程中,您将创建一个多用户环境。此环境包括Amazon ParallelCluster这与Amazon Managed Microsoft AD(活动目录)在corp.pcluster.com. 它还包括一个ReadOnly用户和登录用户。您可以使用自动路径或手动路径创建 VPC、Active Directory (AD) 和 EC2 实例,以实现通过 LDAP 集成的 AD。创建这些资源后,您将继续配置并创建与 AD 集成的集群。创建集群后,以所创建的用户身份登录。有关在本教程中创建的配置的更多信息,请参阅多个用户访问群集DirectoryService配置部分.

在本教程中,您创建的集群通过轻量目录访问协议 (LDAP) 与 Active Directory (AD) 进行通信,以对 AD 中定义的用户进行身份验证。LDAP没有提供加密。为了确保潜在敏感信息的安全传输,我们强烈建议您对与广告集成的集群使用 LDAP 通过 TLS/SSL(简称 LDAPS)。有关更多信息,请参阅 。使用使用服务器端 LDAPS 启用Amazon Managed Microsoft AD中的Amazon Directory Service 管理指南.

本教程的重点是如何创建一个支持多个用户访问群集的环境的过程。本教程不重点介绍如何创建和使用Amazon Directory ServiceAD 本身。你为设置一个Amazon Managed Microsoft AD在本教程中,提供的仅用于测试目的。他们不是提供以取代官方文档和最佳做法,你可以在这里找到Amazon Managed Microsoft ADSimple AD中的Amazon Directory Service管理指南.

第 1 步:创建 AD 基础架构

选择自动化选项卡以创建 Active Directory (AD) 基础结构,使用Amazon CloudFormation快速创建模板。

选择手动选项卡以手动创建 AD 基础架构。

Automated
  1. 登录到Amazon Web Services Management Console

  2. 打开链接,CloudFormation快速创建 (区域 us-east-1),在中创建以下资源CloudFormation控制台:

    • 具有两个子网和用于公共访问的路由的 VPC(如果未指定 VPC)。

    • 一个 Amazon Managed Microsoft AD。

    • 已加入到 AD 的 EC2 实例,您可以用来管理目录。

  3. 快速创建堆栈参数部分,为以下参数创建密码:

    • AdminPassword

    • ReadOnly密码

    • UserPassword

    适用于密钥对中,输入 EC2 key pair 的名称。

    记下此密码。您将在本教程的后面使用它们。

  4. 通过选中复选框确认页面底部的每项访问功能。

  5. 选择创建堆栈

  6. 在之后CloudFormation堆栈已到达CREATE_COMPLETE州,请选择输出堆栈的选项卡。记下输出资源名称和 ID,因为您需要在后面的步骤中使用它们。输出提供创建集群所需的信息:

    
         在中显示创建的堆栈输出的图表Amazon Web Services Management Console.
  7. 继续在第 2 步:创建集群.

Manual
  1. 创建 AD、添加用户并创建Amazon Secrets Manager密钥。

    为目录服务创建一个 VPC,其中包含两个子网位于不同可用区域中,一个Amazon Managed Microsoft AD.

    注意
    • 目录和域名是corp.pcluster.com. 短名称是CORP.

    • 将更改为Admin脚本中的密码。

    • 创建广告至少需要 15 分钟。

    您可以使用以下 Python 脚本在本地创建 VPC、子网和 AD 资源Amazon Web Services 区域. 将此文件另存为ad.py然后运行它。

    import boto3 import time from pprint import pprint vpc_name = "PclusterVPC" ad_domain = "corp.pcluster.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"] 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"] 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"] 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" }

    记下输出资源名称和 ID。您将在后面的步骤中使用它们。

  2. 创建 EC2 实例,将其加入到您的 AD 并创建用户。

    准备在目录中创建用户并存储用于ReadOnlyUser.

    1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

    2. EC2 Dashboard,选择启动实例.

    3. 选择最近使用的 Amazon Linux 2 AMI,t2.micro 实例类型。

      In配置实例详细信息中,选择以下值:

      • 网络PclusterVPC

      • 自动分配公有 IPEnable

      • 域加入目录corp.pcluster.com

      • IAM 角色:创建或选择一个使用Amazon Secrets Manager辅助标记录的权限。

      • 选择审核并启动启动实例。

      • 记下InstanceId(例如,i-1234567890abcdef0)然后等待实例完成启动。

    4. 实例启动后,使用以下命令连接到实例:

      $ 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

      安装必要的软件并加入该领域。

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

      将替换为管理员密码:

      $ ADMIN_PW="asdfASDF1234"
      $ echo $ADMIN_PW | sudo realm join -U Admin corp.pcluster.com

      输出:

      Password for Admin:

      如果上述操作已成功,请使用以下命令将用户添加到 AD:

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

      验证用户已创建:

      directory_id 是 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=pcluster,dc=com"
      $ ldapsearch -x -h $DIRECTORY_IP -D Admin -w $ADMIN_PW -b "cn=user000,ou=Users,ou=CORP,dc=corp,dc=pcluster,dc=com"

      此时,您可以断开与实例的连接(然后将其终止)。

      当你使用ad-cli,默认情况下,用户处于禁用状态。

      从本地计算机重置并激活用户密码:

      注意
      • ro-p@ssw0rd以下是的密码ReadOnlyUser,通过秘密管理器检索(如下所述)。

      • 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"
  3. 将密码添加到 Secret Secrets Manager 钥。

    现在您已经创建了ReadOnlyUser然后设置密码,将其存储在秘密中Amazon ParallelCluster用于验证登录名。

    使用 Secrets Manager 创建新密钥以保存ReadOnlyUser作为值。秘密值格式必须仅为文本,而不是 JSON 格式。记下未来步骤的密钥 ARN。

    $ aws secretsmanager create-secret --name "ADSecretPassword" \ --secret-string "ro-p@ssw0rd" \ --query ARN \ --output text

    输出:

    arn:aws:secretsmanager:region-id:123456789012:secret:ADSecretPassword-1234
  4. 继续在第 2 步:创建集群.

第 2 步:创建集群

环境设置为创建一个群集,该群集可以根据 AD 对用户进行身份验证。

创建简单的群集配置并提供与连接到 AD 相关的设置。有关更多信息,请参见 DirectoryService 部分

将示例群集配置另存为config.yamlfile:

注意

必须更改以下组件。

  • KeyName:你的 EC2 密钥对之一。

  • SubnetId / SubnetIds:在输出中提供的子网 ID 之一CloudFormation快速创建堆栈(自动教程)或 python 脚本(手动教程)。

  • Region:创建 AD 基础设施的区域。

  • DomainAddr:此 IP 地址是 AD 服务的 DNS 地址之一。

  • PasswordSecretArn: 包含的密码的密码的 ARNDomainReadOnlyUser.

HeadNode: InstanceType: t2.micro Ssh: KeyName: keypair Networking: SubnetId: subnet-abcdef01234567890 Scheduling: Scheduler: slurm SlurmQueues: - Name: queue0 ComputeResources: - Name: queue0-t2-micro MinCount: 0 MaxCount: 4 InstanceType: t2.micro Networking: SubnetIds: - subnet-abcdef01234567890 Region: region-id Image: Os: alinux2 DirectoryService: DomainName: dc=corp,dc=pcluster,dc=com DomainAddr: ldap://192.0.2.254,ldap://203.0.113.237 PasswordSecretArn: arn:aws:secretsmanager:region-id:123456789012:secret:ADSecretPassword-AAAAA DomainReadOnlyUser: cn=ReadOnlyUser,ou=Users,ou=CORP,dc=corp,dc=pcluster,dc=com AdditionalSssdConfigs: ldap_auth_disable_tls_never_use_in_production: True

使用以下命令创建集群:

$ pcluster create-cluster --cluster-name "ad-cluster" --cluster-configuration "./config.yaml"

输出:

{ "cluster": { "clusterName": "ad-cluster", "cloudformationStackStatus": "CREATE_IN_PROGRESS", "cloudformationStackArn": "arn:aws:cloudformation:region-id:123456789012:stack/ad-cluster/1234567-abcd-0123-def0-abcdef0123456", "region": "region-id", "version": "3.1.1", "clusterStatus": "CREATE_IN_PROGRESS" }, "validationMessages": [ { "level": "WARNING", "type": "DomainAddrValidator", "message": "The use of the ldaps protocol is strongly encouraged for security reasons." }, { "level": "WARNING", "type": "LdapTlsReqCertValidator", "message": "For security reasons it's recommended to use hard or demand" } ] }

第 3 步:以用户身份 Connect 到集群

可以使用以下命令确定集群的状态:

$ pcluster describe-cluster -n ad-cluster --region "region-id" --query "clusterStatus"

输出:

"CREATE_IN_PROGRESS" / "CREATE_COMPLETE"

当状态达到时"CREATE_COMPLETE",使用创建的用户名和密码登录:

$ HEAD_NODE_IP=$(pcluster describe-cluster -n "ad-cluster" --region "region-id" --query headNode.publicIpAddress | xargs echo)
$ ssh user000@$HEAD_NODE_IP

您可以在没有密码的情况下登录,方法是提供为新用户创建的 SSH 密钥/home/user000@HEAD_NODE_IP/.ssh/id_rsa.

如果ssh命令成功后,您已作为使用 AD 进行身份验证的用户成功连接到集群。

第 4 步:清除

  1. 从本地计算机中删除集群。

    $ pcluster delete-cluster --cluster-name "ad-cluster" --region "region-id"

    输出:

    { "cluster": { "clusterName": "ad-cluster", "cloudformationStackStatus": "DELETE_IN_PROGRESS", "cloudformationStackArn": "arn:aws:cloudformation:region-id:123456789012:stack/ad-cluster/1234567-abcd-0123-def0-abcdef0123456", "region": "region-id", "version": "3.1.1", "clusterStatus": "DELETE_IN_PROGRESS" } }
  2. 检查集群删除的状态。

    $ pcluster describe-cluster --cluster-name "ad-cluster" --region "region-id" --query "clusterStatus"

    输出:

    "DELETE_IN_PROGRESS"

    在集群删除完成后,继续执行下一步。

3. 删除目录资源。

Automated

删除 Active Directory

  1. https://console.aws.amazon.com/cloudformation/

  2. 选择堆栈在导航窗格中。

  3. 例如从堆栈列表中,选择 AD 堆栈pcluster-ad.

  4. 请选择 Delete(删除)。

Manual
  1. 删除 EC2 实例。

    1. https://console.aws.amazon.com/ec2/,选择实例在导航窗格中。

    2. 从实例列表中,选择为将用户添加到目录而创建的实例。

    3. 选择实例状态,那么终止.

  2. 删除活动目录资源。

    从 python 脚本的输出中获取以下资源 IDad.py

    • 广告 ID

    • AD 子网 ID

    • 添加 VPC ID

    1. 使用boto3在 Python 3 环境中删除资源。

      从进口开始:

      $ import boto3 ds = boto3.client("ds") ec2 = boto3.client("ec2") secret = boto3.client("secretsmanager") region = boto3.Session().region_name
    2. 删除 目录。

      $ ds.delete_directory(DirectoryId="d-abcdef0123456789")

      输出:

      { "DirectoryId": "d-abcdef01234567890", "ResponseMetadata": { "RequestId": "1234567-abcd-0123-def0-abcdef0123456", "HTTPStatusCode": 200, "HTTPHeaders": { "x-amzn-requestid": "1234567-abcd-0123-def0-abcdef0123456", "content-type": "application/x-amz-json-1.1", "content-length": "30", "date": "Mon, 17 Jan 2022 17:25:48 GMT" }, "RetryAttempts": 0 } }
    3. 验证目录是否已删除。

      这可能需要长达 30 分钟。

      $ ds.describe_directories(DirectoryIds = ["d-abcdef0123456789"])

      输出:

      { "DirectoryDescriptions": [], "ResponseMetadata": { "RequestId": "1234567-abcd-0123-def0-abcdef0123456", "HTTPStatusCode": 200, "HTTPHeaders": { "x-amzn-requestid": "1234567-abcd-0123-def0-abcdef0123456", "content-type": "application/x-amz-json-1.1", "content-length": "28", "date": "Sun, 23 Jan 2022 17:05:07 GMT" }, "RetryAttempts": 0 } }
    4. 删除 VPC 非默认安全组。

      获取安全组 ID:

      $ ec2.describe_security_groups(Filters=[{"Name":"vpc-id","Values":["vpc-021345abcdef6789"]}])

      输出:

      { "SecurityGroups": [{ "Description": "default VPC security group", "GroupName": "default", "IpPermissions": [{ "IpProtocol": "-1", "IpRanges": [], "Ipv6Ranges": [], "PrefixListIds": [], "UserIdGroupPairs": [{ "GroupId": "sg-abcdef01234567890", "UserId": "123456789012" }] }], "OwnerId": "123456789012", "GroupId": "sg-abcdef01234567890", "IpPermissionsEgress": [{ "IpProtocol": "-1", "IpRanges": [{ "CidrIp": "0.0.0.0/0" }], "Ipv6Ranges": [], "PrefixListIds": [], "UserIdGroupPairs": [] }], "VpcId": "vpc-021345abcdef6789" }, { "Description": "launch-wizard-2 created 2022-01-23T08:05:48.031-08:00", "GroupName": "launch-wizard-2", "IpPermissions": [{ "FromPort": 22, "IpProtocol": "tcp", "IpRanges": [{ "CidrIp": "0.0.0.0/0" }], "Ipv6Ranges": [], "PrefixListIds": [], "ToPort": 22, "UserIdGroupPairs": [] }], "OwnerId": "123456789012", "GroupId": "sg-021345abcdef6789", "IpPermissionsEgress": [{ "IpProtocol": "-1", "IpRanges": [{ "CidrIp": "0.0.0.0/0" }], "Ipv6Ranges": [], "PrefixListIds": [], "UserIdGroupPairs": [] }], "VpcId": "vpc-021345abcdef6789" }], "ResponseMetadata": { "RequestId": "1234567-abcd-0123-def0-abcdef0123456", "HTTPStatusCode": 200, "HTTPHeaders": { "x-amzn-requestid": "1234567-abcd-0123-def0-abcdef0123456", "cache-control": "no-cache, no-store", "strict-transport-security": "max-age=31536000; includeSubDomains", "vary": "accept-encoding", "content-type": "text/xml;charset=UTF-8", "content-length": "2806", "date": "Sun, 23 Jan 2022 17:06:39 GMT", "server": "AmazonEC2" }, "RetryAttempts": 0 } }

      删除安全组。

      $ ec2.delete_security_group(GroupId="sg-021345abcdef6789")

      输出:

      { "ResponseMetadata": { "RequestId": "06691c7a-f504-4aed-97c4-91abd848b34d", "HTTPStatusCode": 200, "HTTPHeaders": { "x-amzn-requestid": "06691c7a-f504-4aed-97c4-91abd848b34d", "cache-control": "no-cache, no-store", "strict-transport-security": "max-age=31536000; includeSubDomains", "content-type": "text/xml;charset=UTF-8", "content-length": "239", "date": "Sun, 23 Jan 2022 17:39:42 GMT", "server": "AmazonEC2" }, "RetryAttempts": 0 } }
    5. 如果不再使用子网,请将其删除。

      $ ec2.delete_subnet("SubnetId"="subnet-1234567890abcdef")

      输出:

      { "ResponseMetadata": { "RequestId": "1234567-abcd-0123-def0-abcdef0123456", "HTTPStatusCode": 200, "HTTPHeaders": { "x-amzn-requestid": "1234567-abcd-0123-def0-abcdef0123456", "cache-control": "no-cache, no-store", "strict-transport-security": "max-age=31536000; includeSubDomains", "content-type": "text/xml;charset=UTF-8", "content-length": "225", "date": "Mon, 17 Jan 2022 18:10:08 GMT", "server": "AmazonEC2" }, "RetryAttempts": 0 } }
      $ ec2.delete_subnet("SubnetId"="subnet-021345abcdef6789")

      输出:

      { "ResponseMetadata": { "RequestId": "1234567-abcd-0123-def0-abcdef0123456", "HTTPStatusCode": 200, "HTTPHeaders": { "x-amzn-requestid": "1234567-abcd-0123-def0-abcdef0123456", "cache-control": "no-cache, no-store", "strict-transport-security": "max-age=31536000; includeSubDomains", "content-type": "text/xml;charset=UTF-8", "content-length": "225", "date": "Mon, 17 Jan 2022 18:10:08 GMT", "server": "AmazonEC2" }, "RetryAttempts": 0 } }
    6. 如果不再使用互联网网关,请分离并删除它。

      获取互联网网关 ID:

      $ ec2.describe_internet_gateways("Filters"=[{"Name":"attachment.vpc-id","Values":["vpc-021345abcdef6789"]}])

      输出:

      { "InternetGateways": [{ "Attachments": [{ "State": "available", "VpcId": "vpc-021345abcdef6789" }], "InternetGatewayId": "igw-abcdef01234567890", "OwnerId": "123456789012", "Tags": [] }], "ResponseMetadata": { "RequestId": "1234567-abcd-0123-def0-abcdef0123456", "HTTPStatusCode": 200, "HTTPHeaders": { "x-amzn-requestid": "1234567-abcd-0123-def0-abcdef0123456", "cache-control": "no-cache, no-store", "strict-transport-security": "max-age=31536000; includeSubDomains", "content-type": "text/xml;charset=UTF-8", "content-length": "649", "date": "Sun, 23 Jan 2022 17:55:22 GMT", "server": "AmazonEC2" }, "RetryAttempts": 0 } }

      分离 Internet 网关。

      $ ec2.detach_internet_gateway(InternetGatewayId="igw-1234567890abcdef", VpcId="vpc-021345abcdef6789")

      输出:

      { "ResponseMetadata": { "RequestId": "1234567-abcd-0123-def0-abcdef0123456", "HTTPStatusCode": 200, "HTTPHeaders": { "x-amzn-requestid": "1234567-abcd-0123-def0-abcdef0123456", "cache-control": "no-cache, no-store", "strict-transport-security": "max-age=31536000; includeSubDomains", "content-type": "text/xml;charset=UTF-8", "content-length": "243", "date": "Mon, 17 Jan 2022 18:39:39 GMT", "server": "AmazonEC2" }, "RetryAttempts": 0 } }

      删除 Internet 网关。

      $ ec2.delete_internet_gateway(InternetGatewayId="igw-1234567890abcdef")

      输出:

      { "ResponseMetadata": { "RequestId": "1234567-abcd-0123-def0-abcdef0123456", "HTTPStatusCode": 200, "HTTPHeaders": { "x-amzn-requestid": "1234567-abcd-0123-def0-abcdef0123456", "cache-control": "no-cache, no-store", "strict-transport-security": "max-age=31536000; includeSubDomains", "content-type": "text/xml;charset=UTF-8", "content-length": "243", "date": "Mon, 17 Jan 2022 18:54:10 GMT", "server": "AmazonEC2" }, "RetryAttempts": 0 } }
    7. 如果 VPC 不再被使用,请将其删除。

      $ ec2.delete_vpc("VpcId"="vpc-021345abcdef6789")

      输出:

      { "ResponseMetadata": { "RequestId": "1234567-abcd-0123-def0-abcdef0123456", "HTTPStatusCode": 200, "HTTPHeaders": { "x-amzn-requestid": "1234567-abcd-0123-def0-abcdef0123456", "cache-control": "no-cache, no-store", "strict-transport-security": "max-age=31536000; includeSubDomains", "content-type": "text/xml;charset=UTF-8", "content-length": "219", "date": "Mon, 17 Jan 2022 19:14:30 GMT", "server": "AmazonEC2" }, "RetryAttempts": 0 } }
    8. 如果秘 Secrets Manager 密钥不再被使用,请删除它。

      $ secret.delete_secret("SecretId"="arn:aws:secretsmanager:region-id:123456789012:secret:ADSecretPassword-AAAAA")

      输出:

      { "ARN": "arn:aws:secretsmanager:region-id:123456789012:secret:ADSecretPassword-123ABC", "Name": "ADSecretPassword", "DeletionDate": "datetime.datetime(2022, 2, 20, 15, 8, 39, 452000, tzinfo=tzlocal())", "ResponseMetadata": { "RequestId": "1234567-abcd-0123-def0-abcdef0123456", "HTTPStatusCode": 200, "HTTPHeaders": { "date": "Fri, 21 Jan 2022 15:08:39 GMT", "content-type": "application/x-amz-json-1.1", "content-length": "134", "connection": "keep-alive", "x-amzn-requestid": "1234567-abcd-0123-def0-abcdef0123456" }, "RetryAttempts": 0 } }