Configurazione delle istanze per i servizi di chiamata

È possibile configurare un'istanza di computazione Cloud@Customer per consentire alle applicazioni in esecuzione sull'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 alle istanze di essere attori (o principal) autorizzati a eseguire azioni sulle risorse del servizio è denominata principal istanza.

Eseguire i passi riportati di seguito per impostare e utilizzare un'istanza come principal.

Configurazione dei firewall delle istanze 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 al reboot del sistema.

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 modificazioni della configurazione

Utilizzare la procedura riportata di seguito per rendere persistenti queste modifiche alla configurazione del firewall tra i reboot dell'istanza.

  1. Salvare la configurazione aggiornata delle tabelle IP.

    iptables-save > /etc/sysconfig/iptables.rules
  2. Creare uno script per ripristinare automaticamente la configurazione corrente (modificata) del firewall 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 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 SSH sull'istanza eredita automaticamente i privilegi concessi all'istanza.

Opzione 1: Bring Your Own Certificate (BYOC)

In Compute Cloud@Customer, puoi fornire i tuoi certificati CA (Certificate Authority) che ti consentono di utilizzare la tua catena di attendibilità 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 Connettersi alla console OCI.

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 di 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 in fase di avvio 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 lo sforzo 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: affidabile a livello globale per il bundle CA 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 trust.

Importante

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

  1. Recupera il certificato dall'endpoint iaas di 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 affidabilità 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, risparmiando lo sforzo di eseguire questi passi manualmente su molte istanze.