Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Crea l'infrastruttura AD - AWS ParallelCluster

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crea l'infrastruttura AD

Scegli la scheda Automatizzata per creare l'infrastruttura Active Directory (AD) con un modello di creazione AWS CloudFormation rapida.

Scegli la scheda Manuale per creare manualmente l'infrastruttura AD.

  1. Accedi alla AWS Management Console.

  2. Apri CloudFormation Quick Create (region us-east-1) per creare le seguenti risorse nella console: CloudFormation

    • A VPC con due sottoreti e routing per l'accesso pubblico, se non è specificato nessuno. VPC

    • Un AWS Managed Microsoft AD.

    • Un'EC2istanza Amazon aggiunta all'AD che puoi utilizzare per gestire la directory.

  3. Nella sezione Parametri della pagina Quick create stack, inserisci le password per i seguenti parametri:

    • AdminPassword

    • ReadOnlyPassword

    • UserPassword

    Prendi nota delle password. Le userai più avanti in questo tutorial.

  4. Per DomainName, inserisci corp.example.com

  5. Per Keypair, inserisci il nome di una coppia di EC2 chiavi Amazon.

  6. Seleziona le caselle per confermare ciascuna delle funzionalità di accesso nella parte inferiore della pagina.

  7. Seleziona Crea stack.

  8. Dopo che lo CloudFormation stack ha raggiunto lo CREATE_COMPLETE stato, scegli la scheda Output dello stack. Prendi nota dei nomi delle risorse di output e IDs perché devi usarli nei passaggi successivi. Gli output forniscono le informazioni necessarie per creare il cluster.

    Un diagramma che mostra gli output dello stack creati in. AWS Management Console
  9. Per completare gli esercizi(Facoltativo) Gestisci utenti e gruppi AD, è necessario l'ID della directory. Scegli Risorse e scorri verso il basso per prendere nota dell'ID della directory.

  10. Continua su (Facoltativo) Gestisci utenti e gruppi AD oCreazione del cluster.

  1. Accedi alla AWS Management Console.

  2. Apri CloudFormation Quick Create (region us-east-1) per creare le seguenti risorse nella console: CloudFormation

    • A VPC con due sottoreti e routing per l'accesso pubblico, se non è specificato nessuno. VPC

    • Un AWS Managed Microsoft AD.

    • Un'EC2istanza Amazon aggiunta all'AD che puoi utilizzare per gestire la directory.

  3. Nella sezione Parametri della pagina Quick create stack, inserisci le password per i seguenti parametri:

    • AdminPassword

    • ReadOnlyPassword

    • UserPassword

    Prendi nota delle password. Le userai più avanti in questo tutorial.

  4. Per DomainName, inserisci corp.example.com

  5. Per Keypair, inserisci il nome di una coppia di EC2 chiavi Amazon.

  6. Seleziona le caselle per confermare ciascuna delle funzionalità di accesso nella parte inferiore della pagina.

  7. Seleziona Crea stack.

  8. Dopo che lo CloudFormation stack ha raggiunto lo CREATE_COMPLETE stato, scegli la scheda Output dello stack. Prendi nota dei nomi delle risorse di output e IDs perché devi usarli nei passaggi successivi. Gli output forniscono le informazioni necessarie per creare il cluster.

    Un diagramma che mostra gli output dello stack creati in. AWS Management Console
  9. Per completare gli esercizi(Facoltativo) Gestisci utenti e gruppi AD, è necessario l'ID della directory. Scegli Risorse e scorri verso il basso per prendere nota dell'ID della directory.

  10. Continua su (Facoltativo) Gestisci utenti e gruppi AD oCreazione del cluster.

Crea un VPC per il servizio di directory con due sottoreti in zone di disponibilità diverse e un. AWS Managed Microsoft AD

Nota
  • La directory e il nome di dominio sonocorp.example.com. Il nome breve èCORP.

  • Cambia la Admin password nello script.

  • La creazione di Active Directory (AD) richiede almeno 15 minuti.

Usa il seguente script Python per creare sottoreti e risorse AD nel tuo locale. VPC Regione AWS Salva questo file con nome ad.py ed eseguilo.

import boto3 import time from pprint import pprint vpc_name = "PclusterVPC" ad_domain = "corp.example.com" admin_password = "asdfASDF1234" Amazon 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})

Di seguito è riportato un esempio di output dallo script 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" }

Prendi nota dei nomi delle risorse di output eIDs. Li usi nei passaggi successivi.

Una volta completato lo script, vai al passaggio successivo.

New Amazon EC2 console
  1. Accedi alla AWS Management Console.

  2. Se non ricopri un ruolo con le politiche elencate nel passaggio 4 allegato, apri la IAM console all'indirizzo https://console.aws.amazon.com/iam/. Altrimenti, vai al passaggio 5.

  3. Crea la ResetUserPassword policy, sostituendo il contenuto evidenziato in rosso con il tuo Regione AWS ID, ID account e ID di directory dall'output dello script che hai eseguito per creare l'AD.

    ResetUserPassword

    { "Statement": [ { "Action": [ "ds:ResetUserPassword" ], "Resource": "arn:aws:ds:region-id:123456789012:directory/d-abcdef01234567890", "Effect": "Allow" } ] }
  4. Crea un IAM ruolo con le seguenti politiche allegate.

  5. Apri la EC2 console Amazon all'indirizzo https://console.aws.amazon.com/ec2/.

  6. In Amazon EC2 Dashboard, scegli Launch Instance.

  7. In Immagini dell'applicazione e del sistema operativo, seleziona un Amazon Linux 2 recenteAMI.

  8. Per tipo di esempio, scegli t2.micro.

  9. Per Coppia di chiavi, scegli una coppia di chiavi.

  10. Per Impostazioni di rete, scegli Modifica.

  11. Per VPC, seleziona la cartellaVPC.

  12. Scorri verso il basso e seleziona Dettagli avanzati.

  13. In Dettagli avanzati, Domain join directory, sceglicorp.example.com.

  14. Per il profilo di IAM esempio, scegli il ruolo che hai creato nel passaggio 1 o un ruolo con le politiche elencate nel passaggio 4 allegate.

  15. In Riepilogo scegli Launch instance.

  16. Prendi nota dell'ID dell'istanza (ad esempio, i-1234567890abcdef0) e attendi che l'istanza finisca di essere avviata.

  17. Dopo l'avvio dell'istanza, procedi con il passaggio successivo.

Old Amazon EC2 console
  1. Accedi alla AWS Management Console.

  2. Se non ricopri un ruolo con le politiche elencate nel passaggio 4 allegato, apri la IAM console all'indirizzo https://console.aws.amazon.com/iam/. Altrimenti, vai al passaggio 5.

  3. Crea la ResetUserPassword politica. Sostituisci il contenuto evidenziato in rosso con il tuo Regione AWS Account AWS ID, ID e l'ID di directory dall'output dello script che hai eseguito per creare Active Directory (AD).

    ResetUserPassword

    { "Statement": [ { "Action": [ "ds:ResetUserPassword" ], "Resource": "arn:aws:ds:region-id:123456789012:directory/d-abcdef01234567890", "Effect": "Allow" } ] }
  4. Crea un IAM ruolo con le seguenti politiche allegate.

  5. Apri la EC2 console Amazon all'indirizzo https://console.aws.amazon.com/ec2/.

  6. In Amazon EC2 Dashboard, scegli Launch Instance.

  7. In Immagini dell'applicazione e del sistema operativo, seleziona un Amazon Linux 2 recenteAMI.

  8. Per tipo di esempio, scegli t2.micro.

  9. Per Coppia di chiavi, scegli una coppia di chiavi.

  10. In Impostazioni di rete scegli Modifica.

  11. In Impostazioni di rete VPC, seleziona la directoryVPC.

  12. Scorri verso il basso e seleziona Dettagli avanzati.

  13. In Dettagli avanzati, Domain join directory, sceglicorp.example.com.

  14. In Dettagli avanzati, Profilo dell'istanza, scegli il ruolo creato nel passaggio 1 o un ruolo con le politiche elencate nel passaggio 4 allegate.

  15. In Riepilogo scegli Launch instance.

  16. Prendi nota dell'ID dell'istanza (ad esempio, i-1234567890abcdef0) e attendi che l'istanza finisca di essere avviata.

  17. Dopo l'avvio dell'istanza, vai al passaggio successivo.

  1. Connettiti alla tua istanza e unisciti al regno AD comeadmin.

    Esegui i seguenti comandi per connetterti all'istanza.

    $ 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
  2. Installa il software necessario ed entra a far parte del regno.
    $ sudo yum -y install sssd realmd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation openldap-clients policycoreutils-python
  3. Sostituisci la password dell'amministratore con la tua admin password.
    $ ADMIN_PW="asdfASDF1234"
    $ echo $ADMIN_PW | sudo realm join -U Admin corp.example.com Password for Admin:

    Se la procedura precedente ha avuto successo, sei entrato a far parte del regno e puoi procedere al passaggio successivo.

  1. Crea il ReadOnlyUser e un altro utente.

    In questo passaggio, si utilizzano gli strumenti adcli e openldap-clients installati in un passaggio precedente.

    $ 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
  2. Verifica che gli utenti siano stati creati:

    Gli indirizzi DNS IP delle directory sono output dello script 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"

    Per impostazione predefinita, quando si crea un utente conad-cli, l'utente è disabilitato.

  3. Reimposta e attiva le password degli utenti dal computer locale:

    Esci dalla tua EC2 istanza Amazon.

    Nota
    • ro-p@ssw0rdè la password diReadOnlyUser, recuperata da AWS Secrets Manager.

    • user-p@ssw0rdè la password di un utente del cluster fornita quando ci si connette (ssh) al cluster.

    directory-idÈ un output dello script 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"
  4. Aggiungi la password a un segreto di Secrets Manager.

    Ora che hai creato una password ReadOnlyUser e l'hai impostata, archiviala in un luogo segreto da AWS ParallelCluster utilizzare per la convalida degli accessi.

    Usa Secrets Manager per creare un nuovo segreto che contenga la password ReadOnlyUser come valore. Il formato del valore segreto deve essere solo testo semplice (non JSON formato). Prendi nota del segreto ARN per le fasi future.

    $ 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

Prendi nota della risorsaIDs. Li usi nei passaggi successivi.

  1. Genera un certificato di dominio, localmente.
    $ 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
  2. Archivia il certificato in Secrets Manager per renderlo recuperabile dall'interno del cluster in un secondo momento.
    $ 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" }
  3. Aggiungi la seguente policy al IAM ruolo che hai creato per aggiungere l'EC2istanza Amazon al dominio AD.

    PutDomainCertificateSecrets

    { "Statement": [ { "Action": [ "secretsmanager:PutSecretValue" ], "Resource": [ "arn:aws:secretsmanager:region-id:123456789012:secret:example-cert-123abc", ], "Effect": "Allow" } ] }
  4. Importa il certificato in 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" }
  5. Crea e posiziona il sistema di bilanciamento del carico davanti agli endpoint di 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" } ] }
  6. Crea il gruppo target destinato agli endpoint di 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" } ] }
  7. Registra gli endpoint Active Directory (AD) nel gruppo target.
    $ 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
  8. Crea il listener LB con il certificato.
    $ 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" } ] } } ] } ] }
  9. Crea la zona ospitata per rendere il dominio rilevabile all'interno del cluster. 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" } }
  10. Crea un file denominato recordset-change.json con il seguente contenuto. HostedZoneIdè l'ID canonico della zona ospitata del sistema di bilanciamento del carico.
    { "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 } } } ] }
  11. Inviate la modifica del recordset alla zona ospitata, questa volta utilizzando l'ID della zona ospitata.
    $ 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" } }
  12. Create un documento di policy policy.json con il seguente contenuto.
    { "Version": "2012-10-17", "Statement": [ { "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:region-id:123456789012:secret:example-cert-abc123" ], "Effect": "Allow" } ] }
  13. Create un documento di policy denominato policy.json con il seguente contenuto.
    $ 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" } }
  14. Continua a seguire i passaggi indicati in (Facoltativo) Gestisci utenti e gruppi AD oCreazione del cluster.

Crea un VPC per il servizio di directory con due sottoreti in zone di disponibilità diverse e un. AWS Managed Microsoft AD

Nota
  • La directory e il nome di dominio sonocorp.example.com. Il nome breve èCORP.

  • Cambia la Admin password nello script.

  • La creazione di Active Directory (AD) richiede almeno 15 minuti.

Usa il seguente script Python per creare sottoreti e risorse AD nel tuo locale. VPC Regione AWS Salva questo file con nome ad.py ed eseguilo.

import boto3 import time from pprint import pprint vpc_name = "PclusterVPC" ad_domain = "corp.example.com" admin_password = "asdfASDF1234" Amazon 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})

Di seguito è riportato un esempio di output dallo script 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" }

Prendi nota dei nomi delle risorse di output eIDs. Li usi nei passaggi successivi.

Una volta completato lo script, vai al passaggio successivo.

Nota
  • La directory e il nome di dominio sonocorp.example.com. Il nome breve èCORP.

  • Cambia la Admin password nello script.

  • La creazione di Active Directory (AD) richiede almeno 15 minuti.

Usa il seguente script Python per creare sottoreti e risorse AD nel tuo locale. VPC Regione AWS Salva questo file con nome ad.py ed eseguilo.

import boto3 import time from pprint import pprint vpc_name = "PclusterVPC" ad_domain = "corp.example.com" admin_password = "asdfASDF1234" Amazon 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})

Di seguito è riportato un esempio di output dallo script 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" }

Prendi nota dei nomi delle risorse di output eIDs. Li usi nei passaggi successivi.

Una volta completato lo script, vai al passaggio successivo.

New Amazon EC2 console
  1. Accedi alla AWS Management Console.

  2. Se non ricopri un ruolo con le politiche elencate nel passaggio 4 allegato, apri la IAM console all'indirizzo https://console.aws.amazon.com/iam/. Altrimenti, vai al passaggio 5.

  3. Crea la ResetUserPassword policy, sostituendo il contenuto evidenziato in rosso con il tuo Regione AWS ID, ID account e ID di directory dall'output dello script che hai eseguito per creare l'AD.

    ResetUserPassword

    { "Statement": [ { "Action": [ "ds:ResetUserPassword" ], "Resource": "arn:aws:ds:region-id:123456789012:directory/d-abcdef01234567890", "Effect": "Allow" } ] }
  4. Crea un IAM ruolo con le seguenti politiche allegate.

  5. Apri la EC2 console Amazon all'indirizzo https://console.aws.amazon.com/ec2/.

  6. In Amazon EC2 Dashboard, scegli Launch Instance.

  7. In Immagini dell'applicazione e del sistema operativo, seleziona un Amazon Linux 2 recenteAMI.

  8. Per tipo di esempio, scegli t2.micro.

  9. Per Coppia di chiavi, scegli una coppia di chiavi.

  10. Per Impostazioni di rete, scegli Modifica.

  11. Per VPC, seleziona la cartellaVPC.

  12. Scorri verso il basso e seleziona Dettagli avanzati.

  13. In Dettagli avanzati, Domain join directory, sceglicorp.example.com.

  14. Per il profilo di IAM esempio, scegli il ruolo che hai creato nel passaggio 1 o un ruolo con le politiche elencate nel passaggio 4 allegate.

  15. In Riepilogo scegli Launch instance.

  16. Prendi nota dell'ID dell'istanza (ad esempio, i-1234567890abcdef0) e attendi che l'istanza finisca di essere avviata.

  17. Dopo l'avvio dell'istanza, procedi con il passaggio successivo.

Old Amazon EC2 console
  1. Accedi alla AWS Management Console.

  2. Se non ricopri un ruolo con le politiche elencate nel passaggio 4 allegato, apri la IAM console all'indirizzo https://console.aws.amazon.com/iam/. Altrimenti, vai al passaggio 5.

  3. Crea la ResetUserPassword politica. Sostituisci il contenuto evidenziato in rosso con il tuo Regione AWS Account AWS ID, ID e l'ID di directory dall'output dello script che hai eseguito per creare Active Directory (AD).

    ResetUserPassword

    { "Statement": [ { "Action": [ "ds:ResetUserPassword" ], "Resource": "arn:aws:ds:region-id:123456789012:directory/d-abcdef01234567890", "Effect": "Allow" } ] }
  4. Crea un IAM ruolo con le seguenti politiche allegate.

  5. Apri la EC2 console Amazon all'indirizzo https://console.aws.amazon.com/ec2/.

  6. In Amazon EC2 Dashboard, scegli Launch Instance.

  7. In Immagini dell'applicazione e del sistema operativo, seleziona un Amazon Linux 2 recenteAMI.

  8. Per tipo di esempio, scegli t2.micro.

  9. Per Coppia di chiavi, scegli una coppia di chiavi.

  10. In Impostazioni di rete scegli Modifica.

  11. In Impostazioni di rete VPC, seleziona la directoryVPC.

  12. Scorri verso il basso e seleziona Dettagli avanzati.

  13. In Dettagli avanzati, Domain join directory, sceglicorp.example.com.

  14. In Dettagli avanzati, Profilo dell'istanza, scegli il ruolo creato nel passaggio 1 o un ruolo con le politiche elencate nel passaggio 4 allegate.

  15. In Riepilogo scegli Launch instance.

  16. Prendi nota dell'ID dell'istanza (ad esempio, i-1234567890abcdef0) e attendi che l'istanza finisca di essere avviata.

  17. Dopo l'avvio dell'istanza, vai al passaggio successivo.

New Amazon EC2 console
  1. Accedi alla AWS Management Console.

  2. Se non ricopri un ruolo con le politiche elencate nel passaggio 4 allegato, apri la IAM console all'indirizzo https://console.aws.amazon.com/iam/. Altrimenti, vai al passaggio 5.

  3. Crea la ResetUserPassword policy, sostituendo il contenuto evidenziato in rosso con il tuo Regione AWS ID, ID account e ID di directory dall'output dello script che hai eseguito per creare l'AD.

    ResetUserPassword

    { "Statement": [ { "Action": [ "ds:ResetUserPassword" ], "Resource": "arn:aws:ds:region-id:123456789012:directory/d-abcdef01234567890", "Effect": "Allow" } ] }
  4. Crea un IAM ruolo con le seguenti politiche allegate.

  5. Apri la EC2 console Amazon all'indirizzo https://console.aws.amazon.com/ec2/.

  6. In Amazon EC2 Dashboard, scegli Launch Instance.

  7. In Immagini dell'applicazione e del sistema operativo, seleziona un Amazon Linux 2 recenteAMI.

  8. Per tipo di esempio, scegli t2.micro.

  9. Per Coppia di chiavi, scegli una coppia di chiavi.

  10. Per Impostazioni di rete, scegli Modifica.

  11. Per VPC, seleziona la cartellaVPC.

  12. Scorri verso il basso e seleziona Dettagli avanzati.

  13. In Dettagli avanzati, Domain join directory, sceglicorp.example.com.

  14. Per il profilo di IAM esempio, scegli il ruolo che hai creato nel passaggio 1 o un ruolo con le politiche elencate nel passaggio 4 allegate.

  15. In Riepilogo scegli Launch instance.

  16. Prendi nota dell'ID dell'istanza (ad esempio, i-1234567890abcdef0) e attendi che l'istanza finisca di essere avviata.

  17. Dopo l'avvio dell'istanza, procedi con il passaggio successivo.

Old Amazon EC2 console
  1. Accedi alla AWS Management Console.

  2. Se non ricopri un ruolo con le politiche elencate nel passaggio 4 allegato, apri la IAM console all'indirizzo https://console.aws.amazon.com/iam/. Altrimenti, vai al passaggio 5.

  3. Crea la ResetUserPassword politica. Sostituisci il contenuto evidenziato in rosso con il tuo Regione AWS Account AWS ID, ID e l'ID di directory dall'output dello script che hai eseguito per creare Active Directory (AD).

    ResetUserPassword

    { "Statement": [ { "Action": [ "ds:ResetUserPassword" ], "Resource": "arn:aws:ds:region-id:123456789012:directory/d-abcdef01234567890", "Effect": "Allow" } ] }
  4. Crea un IAM ruolo con le seguenti politiche allegate.

  5. Apri la EC2 console Amazon all'indirizzo https://console.aws.amazon.com/ec2/.

  6. In Amazon EC2 Dashboard, scegli Launch Instance.

  7. In Immagini dell'applicazione e del sistema operativo, seleziona un Amazon Linux 2 recenteAMI.

  8. Per tipo di esempio, scegli t2.micro.

  9. Per Coppia di chiavi, scegli una coppia di chiavi.

  10. In Impostazioni di rete scegli Modifica.

  11. In Impostazioni di rete VPC, seleziona la directoryVPC.

  12. Scorri verso il basso e seleziona Dettagli avanzati.

  13. In Dettagli avanzati, Domain join directory, sceglicorp.example.com.

  14. In Dettagli avanzati, Profilo dell'istanza, scegli il ruolo creato nel passaggio 1 o un ruolo con le politiche elencate nel passaggio 4 allegate.

  15. In Riepilogo scegli Launch instance.

  16. Prendi nota dell'ID dell'istanza (ad esempio, i-1234567890abcdef0) e attendi che l'istanza finisca di essere avviata.

  17. Dopo l'avvio dell'istanza, vai al passaggio successivo.

  1. Accedi alla AWS Management Console.

  2. Se non ricopri un ruolo con le politiche elencate nel passaggio 4 allegato, apri la IAM console all'indirizzo https://console.aws.amazon.com/iam/. Altrimenti, vai al passaggio 5.

  3. Crea la ResetUserPassword policy, sostituendo il contenuto evidenziato in rosso con il tuo Regione AWS ID, ID account e ID di directory dall'output dello script che hai eseguito per creare l'AD.

    ResetUserPassword

    { "Statement": [ { "Action": [ "ds:ResetUserPassword" ], "Resource": "arn:aws:ds:region-id:123456789012:directory/d-abcdef01234567890", "Effect": "Allow" } ] }
  4. Crea un IAM ruolo con le seguenti politiche allegate.

  5. Apri la EC2 console Amazon all'indirizzo https://console.aws.amazon.com/ec2/.

  6. In Amazon EC2 Dashboard, scegli Launch Instance.

  7. In Immagini dell'applicazione e del sistema operativo, seleziona un Amazon Linux 2 recenteAMI.

  8. Per tipo di esempio, scegli t2.micro.

  9. Per Coppia di chiavi, scegli una coppia di chiavi.

  10. Per Impostazioni di rete, scegli Modifica.

  11. Per VPC, seleziona la cartellaVPC.

  12. Scorri verso il basso e seleziona Dettagli avanzati.

  13. In Dettagli avanzati, Domain join directory, sceglicorp.example.com.

  14. Per il profilo di IAM esempio, scegli il ruolo che hai creato nel passaggio 1 o un ruolo con le politiche elencate nel passaggio 4 allegate.

  15. In Riepilogo scegli Launch instance.

  16. Prendi nota dell'ID dell'istanza (ad esempio, i-1234567890abcdef0) e attendi che l'istanza finisca di essere avviata.

  17. Dopo l'avvio dell'istanza, procedi con il passaggio successivo.

  1. Connettiti alla tua istanza e unisciti al regno AD comeadmin.

    Esegui i seguenti comandi per connetterti all'istanza.

    $ 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
  2. Installa il software necessario ed entra a far parte del regno.
    $ sudo yum -y install sssd realmd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation openldap-clients policycoreutils-python
  3. Sostituisci la password dell'amministratore con la tua admin password.
    $ ADMIN_PW="asdfASDF1234"
    $ echo $ADMIN_PW | sudo realm join -U Admin corp.example.com Password for Admin:

    Se la procedura precedente ha avuto successo, sei entrato a far parte del regno e puoi procedere al passaggio successivo.

  1. Connettiti alla tua istanza e unisciti al regno AD comeadmin.

    Esegui i seguenti comandi per connetterti all'istanza.

    $ 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
  2. Installa il software necessario ed entra a far parte del regno.
    $ sudo yum -y install sssd realmd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation openldap-clients policycoreutils-python
  3. Sostituisci la password dell'amministratore con la tua admin password.
    $ ADMIN_PW="asdfASDF1234"
    $ echo $ADMIN_PW | sudo realm join -U Admin corp.example.com Password for Admin:

    Se la procedura precedente ha avuto successo, sei entrato a far parte del regno e puoi procedere al passaggio successivo.

  1. Crea il ReadOnlyUser e un altro utente.

    In questo passaggio, si utilizzano gli strumenti adcli e openldap-clients installati in un passaggio precedente.

    $ 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
  2. Verifica che gli utenti siano stati creati:

    Gli indirizzi DNS IP delle directory sono output dello script 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"

    Per impostazione predefinita, quando si crea un utente conad-cli, l'utente è disabilitato.

  3. Reimposta e attiva le password degli utenti dal computer locale:

    Esci dalla tua EC2 istanza Amazon.

    Nota
    • ro-p@ssw0rdè la password diReadOnlyUser, recuperata da AWS Secrets Manager.

    • user-p@ssw0rdè la password di un utente del cluster fornita quando ci si connette (ssh) al cluster.

    directory-idÈ un output dello script 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"
  4. Aggiungi la password a un segreto di Secrets Manager.

    Ora che hai creato una password ReadOnlyUser e l'hai impostata, archiviala in un luogo segreto da AWS ParallelCluster utilizzare per la convalida degli accessi.

    Usa Secrets Manager per creare un nuovo segreto che contenga la password ReadOnlyUser come valore. Il formato del valore segreto deve essere solo testo semplice (non JSON formato). Prendi nota del segreto ARN per le fasi future.

    $ 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

  1. Crea il ReadOnlyUser e un altro utente.

    In questo passaggio, si utilizzano gli strumenti adcli e openldap-clients installati in un passaggio precedente.

    $ 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
  2. Verifica che gli utenti siano stati creati:

    Gli indirizzi DNS IP delle directory sono output dello script 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"

    Per impostazione predefinita, quando si crea un utente conad-cli, l'utente è disabilitato.

  3. Reimposta e attiva le password degli utenti dal computer locale:

    Esci dalla tua EC2 istanza Amazon.

    Nota
    • ro-p@ssw0rdè la password diReadOnlyUser, recuperata da AWS Secrets Manager.

    • user-p@ssw0rdè la password di un utente del cluster fornita quando ci si connette (ssh) al cluster.

    directory-idÈ un output dello script 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"
  4. Aggiungi la password a un segreto di Secrets Manager.

    Ora che hai creato una password ReadOnlyUser e l'hai impostata, archiviala in un luogo segreto da AWS ParallelCluster utilizzare per la convalida degli accessi.

    Usa Secrets Manager per creare un nuovo segreto che contenga la password ReadOnlyUser come valore. Il formato del valore segreto deve essere solo testo semplice (non JSON formato). Prendi nota del segreto ARN per le fasi future.

    $ 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

Prendi nota della risorsaIDs. Li usi nei passaggi successivi.

  1. Genera un certificato di dominio, localmente.
    $ 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
  2. Archivia il certificato in Secrets Manager per renderlo recuperabile dall'interno del cluster in un secondo momento.
    $ 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" }
  3. Aggiungi la seguente policy al IAM ruolo che hai creato per aggiungere l'EC2istanza Amazon al dominio AD.

    PutDomainCertificateSecrets

    { "Statement": [ { "Action": [ "secretsmanager:PutSecretValue" ], "Resource": [ "arn:aws:secretsmanager:region-id:123456789012:secret:example-cert-123abc", ], "Effect": "Allow" } ] }
  4. Importa il certificato in 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" }
  5. Crea e posiziona il sistema di bilanciamento del carico davanti agli endpoint di 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" } ] }
  6. Crea il gruppo target destinato agli endpoint di 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" } ] }
  7. Registra gli endpoint Active Directory (AD) nel gruppo target.
    $ 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
  8. Crea il listener LB con il certificato.
    $ 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" } ] } } ] } ] }
  9. Crea la zona ospitata per rendere il dominio rilevabile all'interno del cluster. 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" } }
  10. Crea un file denominato recordset-change.json con il seguente contenuto. HostedZoneIdè l'ID canonico della zona ospitata del sistema di bilanciamento del carico.
    { "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 } } } ] }
  11. Inviate la modifica del recordset alla zona ospitata, questa volta utilizzando l'ID della zona ospitata.
    $ 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" } }
  12. Create un documento di policy policy.json con il seguente contenuto.
    { "Version": "2012-10-17", "Statement": [ { "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:region-id:123456789012:secret:example-cert-abc123" ], "Effect": "Allow" } ] }
  13. Create un documento di policy denominato policy.json con il seguente contenuto.
    $ 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" } }
  14. Continua a seguire i passaggi indicati in (Facoltativo) Gestisci utenti e gruppi AD oCreazione del cluster.

Prendi nota della risorsaIDs. Li usi nei passaggi successivi.

  1. Genera un certificato di dominio, localmente.
    $ 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
  2. Archivia il certificato in Secrets Manager per renderlo recuperabile dall'interno del cluster in un secondo momento.
    $ 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" }
  3. Aggiungi la seguente policy al IAM ruolo che hai creato per aggiungere l'EC2istanza Amazon al dominio AD.

    PutDomainCertificateSecrets

    { "Statement": [ { "Action": [ "secretsmanager:PutSecretValue" ], "Resource": [ "arn:aws:secretsmanager:region-id:123456789012:secret:example-cert-123abc", ], "Effect": "Allow" } ] }
  4. Importa il certificato in 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" }
  5. Crea e posiziona il sistema di bilanciamento del carico davanti agli endpoint di 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" } ] }
  6. Crea il gruppo target destinato agli endpoint di 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" } ] }
  7. Registra gli endpoint Active Directory (AD) nel gruppo target.
    $ 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
  8. Crea il listener LB con il certificato.
    $ 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" } ] } } ] } ] }
  9. Crea la zona ospitata per rendere il dominio rilevabile all'interno del cluster. 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" } }
  10. Crea un file denominato recordset-change.json con il seguente contenuto. HostedZoneIdè l'ID canonico della zona ospitata del sistema di bilanciamento del carico.
    { "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 } } } ] }
  11. Inviate la modifica del recordset alla zona ospitata, questa volta utilizzando l'ID della zona ospitata.
    $ 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" } }
  12. Create un documento di policy policy.json con il seguente contenuto.
    { "Version": "2012-10-17", "Statement": [ { "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:region-id:123456789012:secret:example-cert-abc123" ], "Effect": "Allow" } ] }
  13. Create un documento di policy denominato policy.json con il seguente contenuto.
    $ 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" } }
  14. Continua a seguire i passaggi indicati in (Facoltativo) Gestisci utenti e gruppi AD oCreazione del cluster.
PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.