Configurazione delle istanze per i servizi di chiamata

È possibile configurare un'istanza di computazione Compute Cloud@Customer per consentire alle applicazioni in esecuzione nell'istanza di chiamare i servizi e gestire le risorse in modo simile al modo in cui gli utenti di Compute Cloud@Customer chiamano i servizi per gestire le risorse.

La funzione del servizio IAM che consente agli attori (o ai principal) autorizzati delle istanze di eseguire azioni sulle risorse del servizio è denominata principal dell'istanza.

Per impostare e utilizzare un'istanza come principal, effettuare le operazioni riportate di seguito.

Configurazione dei firewall dell'istanza per consentire i servizi di chiamata

In questa sezione viene descritto come modificare la configurazione del firewall dell'istanza e come creare un servizio systemd per ripristinare le modifiche se il sistema viene riavviato.

Modifica della configurazione del firewall
  1. Come utente con privilegi, modificare la configurazione del firewall dell'istanza per consentire all'istanza di accedere agli endpoint del servizio, ad esempio iaas e identity.

  2. Utilizzare il comando iptables per aggiungere le seguenti regole BareMetalInstanceServices al firewall dell'istanza:

    iptables -I BareMetalInstanceServices 14 -p tcp -d 169.254.169.254 --dport 443 -j ACCEPT
    iptables -I BareMetalInstanceServices 14 -p tcp -d 169.254.240.254 --dport 443 -j ACCEPT

    La prima voce è obbligatoria per tutti gli endpoint. La seconda voce è necessaria per contattare l'endpoint dello storage degli oggetti.

Rendere persistenti le modifiche alla configurazione

Utilizzare la procedura riportata di seguito per rendere persistenti queste modifiche alla configurazione del firewall tra i riavvii delle istanze.

  1. Salvare la configurazione aggiornata delle tabelle IP.

    iptables-save > /etc/sysconfig/iptables.rules
  2. Creare uno script per ripristinare automaticamente la configurazione firewall corrente (modificata) al reboot.

    In questo esempio, lo script è denominato /sbin/restore-iptables.sh. Di seguito è riportato il contenuto del file /sbin/restore-iptables.sh:

    #!/bin/sh
    /sbin/iptables-restore < /etc/sysconfig/iptables.rules
  3. Impostare il bit eseguibile sullo script.

    chmod +x /sbin/restore-iptables.sh
  4. Creare un servizio systemd oneshot per eseguire lo script /sbin/restore-iptables.sh in fase di boot.

    In questo esempio, il servizio è denominato /etc/systemd/system/restore-iptables.service. Di seguito è riportato il contenuto del file /etc/systemd/system/restore-iptables.service:

    [Unit]
    Description=Restore IP Tables
    After=cloud-final.service
    
    [Service]
    ExecStart=/sbin/restore-iptables.sh
    User=root
    Group=root
    Type=oneshot
    
    [Install]
    WantedBy=multi-user.target
  5. Ricaricare la configurazione del manager systemd e abilitare l'esecuzione del servizio in fase di boot.

    systemctl daemon-reload
    systemctl enable restore-iptables

Configurazione dei certificati dell'istanza per consentire i servizi di chiamata

In Compute Cloud@Customer, per impostazione predefinita, gli endpoint (ad esempio iaas e identity) offrono un certificato firmato da una CA specifica di Compute Cloud@Customer. Per impostazione predefinita, i sistemi operativi non considerano attendibili i certificati firmati da una CA specifica di questo Compute Cloud@Customer. Se il sistema operativo non considera attendibili i certificati offerti, i tentativi di utilizzare l'SDK o l'interfaccia CLI OCI non riescono con un errore CERTIFICATE_VERIFY_FAILED.

Implementare una delle soluzioni descritte in questo argomento per utilizzare correttamente l'SDK o l'interfaccia CLI OCI nell'istanza.

Importante

Qualsiasi utente che può eseguire l'accesso SSH all'istanza eredita automaticamente i privilegi concessi all'istanza.

Opzione 1: Bring Your Own Certificate (BYOC)

In Compute Cloud@Customer è possibile fornire i propri certificati CA (Certificate Authority) che consentono di utilizzare la catena sicura CA. Per utilizzare i propri certificati, aprire una richiesta di supporto e richiedere di utilizzare i propri certificati. Vedere Creazione di una richiesta di supporto. Per accedere al supporto, collegarsi alla console di Oracle Cloud come descritto in Accedi a OCI Console.

In un sistema operativo Linux, il comando seguente elenca le CA attendibili per impostazione predefinita:

trust list --filter=ca-anchors

Opzione 2: specificare nel codice SDK il bundle CA da utilizzare

Questo metodo copia il bundle CA specifico di Compute Cloud@Customer nell'istanza, ma non verifica il certificato del server (--insecure). Per garantire la sicurezza, verificare il contenuto del bundle recuperato (external_ca.crt).

  1. Recupera il certificato dall'endpoint iaas dell'infrastruttura Compute Cloud@Customer.

    curl --insecure -sS -o external_ca.crt --noproxy "*" https://iaas.ccc_name.domain_name/cachain

    Questo comando può trovarsi in uno script passato all'istanza al momento del lancio utilizzando l'opzione --user-data-file o l'opzione --metadata con un campo user_data. Lo script verrà eseguito da cloud-init all'interno dell'istanza durante l'inizializzazione, risparmiando l'impegno di recuperare manualmente questo file di certificato in molte istanze.

  2. Verificare il contenuto del bundle CA salvato nel file external_ca.crt.

  3. Specificare il bundle CA nel codice SDK Python.

    signer = oci.auth.signers.InstancePrincipalsSecurityTokenSigner(
        federation_client_cert_bundle_verify="/home/opc/external_ca.crt"
    )
    identity_client = oci.identity.IdentityClient(config={}, signer=signer)
    identity_client.base_client.session.verify = "/home/opc/external_ca.crt"

Opzione 3: affidabilità globale del bundle CA di Oracle Compute Cloud@Customer

Questo metodo è lo stesso del metodo precedente con la seguente differenza: invece di specificare il bundle CA nel codice SDK, questo metodo aggiunge il bundle CA alla catena di attendibilità.

Importante

Quando il bundle CA viene aggiunto alla catena sicura, ogni applicazione in questa istanza di computazione considererà attendibili i certificati firmati con la CA specificata in questo bundle. Si consideri se si tratta di un rischio accettabile per la sicurezza.

  1. Recupera il certificato dall'endpoint iaas dell'infrastruttura Compute Cloud@Customer.

    curl --insecure -sS -o external_ca.crt --noproxy "*" https://iaas.ccc_name.domain_name/cachain
  2. Verificare il contenuto del bundle CA salvato nel file external_ca.crt.

  3. Aggiorna la catena di fiducia CA globale.

    cp external_ca.crt /etc/pki/ca-trust/source/anchors/
    update-ca-trust extract

I passi 1 e 3 di questo metodo potrebbero trovarsi in uno script passato all'istanza al momento dell'avvio utilizzando l'opzione --user-data-file o l'opzione --metadata con un campo user_data. Lo script viene eseguito da cloud-init all'interno dell'istanza durante l'inizializzazione, evitando di eseguire manualmente questi passi in molte istanze.