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.
-
Configurare il firewall dell'istanza per abilitare l'istanza ad accedere agli endpoint del servizio. Vedere Configurazione dei firewall dell'istanza per consentire i servizi di chiamata.
-
Assicurarsi che l'istanza sia inclusa in un gruppo dinamico (configurato nella tenancy) che concede le autorizzazioni per accedere alle risorse necessarie. Vedere Gestione dei gruppi dinamici.
L'istanza deve essere creata o spostata in un compartimento denominato in una regola di corrispondenza del gruppo dinamico oppure all'istanza deve essere assegnata una tag risorsa denominata in una regola di corrispondenza. Vedere Scrittura di regole di corrispondenza per definire i gruppi dinamici.
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
-
-
Come utente con privilegi, modificare la configurazione del firewall dell'istanza per consentire all'istanza di accedere agli endpoint del servizio, ad esempio
iaas
eidentity
. -
Utilizzare il comando
iptables
per aggiungere le seguenti regoleBareMetalInstanceServices
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.
-
Salvare la configurazione aggiornata delle tabelle IP.
iptables-save > /etc/sysconfig/iptables.rules
-
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
-
Impostare il bit eseguibile sullo script.
chmod +x /sbin/restore-iptables.sh
-
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
-
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.
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
).
-
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 campouser_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. -
Verificare il contenuto del bundle CA salvato nel file
external_ca.crt
. -
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à.
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.
-
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
-
Verificare il contenuto del bundle CA salvato nel file
external_ca.crt
. -
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.