Configuration d'instances pour appeler des services

Une instance de calcul Compute Cloud@Customer peut être configurée pour permettre aux applications exécutées sur l'instance d'appeler des services et de gérer des ressources de la même manière que les utilisateurs Compute Cloud@Customer appellent des services pour gérer des ressources.

La fonctionnalité du service IAM permettant aux instances d'être des acteurs autorisés (ou de principaux) afin d'effectuer des actions sur des ressources du service est appelée principal d'instance.

Pour configurer et utiliser une instance en tant que principal, procédez comme suit :

Configuration de pare-feu d'instance pour autoriser les services d'appel

Cette section explique comment modifier la configuration du pare-feu d'instance et comment créer un service systemd pour restaurer les modifications si le système se réinitialise.

Modification de la configuration du pare-feu
  1. En tant qu'utilisateur privilégié, modifiez la configuration du pare-feu d'instance pour permettre à l'instance d'accéder aux adresses de service telles que iaas et identity.

  2. Utilisez la commande iptables pour ajouter les règles BareMetalInstanceServices suivantes au pare-feu d'instance :

    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 première entrée est requise pour toutes les adresses. La deuxième entrée est requise pour contacter l'adresse Object Storage.

Rendre persistantes les modifications de configuration

Procédez comme suit pour que ces modifications de configuration de pare-feu persistent après la réinitialisation de l'instance.

  1. Enregistrez la configuration des tables IP mises à jour.

    iptables-save > /etc/sysconfig/iptables.rules
  2. Créez un script pour restaurer automatiquement la configuration de pare-feu actuelle (modifiée) à la réinitialisation.

    Dans cet exemple, le script est nommé /sbin/restore-iptables.sh. Le contenu du fichier /sbin/restore-iptables.sh est le suivant :

    #!/bin/sh
    /sbin/iptables-restore < /etc/sysconfig/iptables.rules
  3. Définissez le bit exécutable sur le script.

    chmod +x /sbin/restore-iptables.sh
  4. Créez un service systemd oneshot pour exécuter le script /sbin/restore-iptables.sh lors de l'initialisation.

    Dans cet exemple, le service est nommé /etc/systemd/system/restore-iptables.service. Le contenu du fichier /etc/systemd/system/restore-iptables.service est le suivant :

    [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. Rechargez la configuration du gestionnaire systemd et activez l'exécution du service au moment de l'initialisation.

    systemctl daemon-reload
    systemctl enable restore-iptables

Configuration de certificats d'instance pour autoriser l'appel de services

Par défaut, sur Compute Cloud@Customer, les adresses (telles que iaas et identity) offrent un certificat signé par une autorité de certification propre à Compute Cloud@Customer. Par défaut, les systèmes d'exploitation ne font pas confiance aux certificats signés par une autorité de certification propre à ce Compute Cloud@Customer. Si le système d'exploitation ne fait pas confiance aux certificats proposés, les tentatives d'utilisation du kit SDK ou de l'interface de ligne de commande OCI échouent avec une erreur CERTIFICATE_VERIFY_FAILED.

Implémentez l'une des solutions décrites dans cette rubrique pour utiliser le kit SDK ou l'interface de ligne de commande OCI sur l'instance.

Important

Tout utilisateur ayant accès à l'instance via une connexion SSH hérite automatiquement du privilège octroyé à celle-ci.

Option 1 : utilisation de votre propre certificat (BYOC)

Sur Compute Cloud@Customer, vous pouvez fournir vos propres certificats d'autorité de certification qui vous permettent d'utiliser votre chaîne de certification d'autorité de certification. Pour utiliser vos propres certificats, ouvrez une demande d'assistance et demandez à utiliser vos propres certificats. Reportez-vous à Création d'une demande d'assistance. Pour accéder au support technique, connectez-vous à la console Oracle Cloud comme décrit dans Connexion à la console OCI.

Sur un O/S Linux, la commande suivante répertorie les CA sécurisées par défaut :

trust list --filter=ca-anchors

Option 2 : indiquer dans le code SDK le package d'autorité de certification à utiliser

Cette méthode copie le package d'autorité de certification propre à Compute Cloud@Customer vers l'instance, mais ne vérifie pas le certificat du serveur (--insecure). Pour garantir la sécurité, vérifiez le contenu du groupe extrait (external_ca.crt).

  1. Extrayez le certificat de l'adresse iaas de Compute Cloud@Customer.

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

    Cette commande peut se trouver dans un script transmis à l'instance lors du lancement à l'aide de l'option --user-data-file ou de l'option --metadata avec un champ user_data. Le script sera exécuté par cloud-init à l'intérieur de l'instance lors de l'initialisation, ce qui permet d'économiser les efforts de récupération manuelle de ce fichier de certificat sur de nombreuses instances.

  2. Vérifiez le contenu du package d'autorité de certification enregistré dans le fichier external_ca.crt.

  3. Indiquez le package d'autorité de certification dans le code du kit 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"

Option 3 : approbation globale du package d'autorité de certification Compute Cloud@Customer

Cette méthode est identique à la méthode précédente avec la différence suivante : au lieu de spécifier le package d'autorité de certification dans le code du kit SDK, cette méthode ajoute le package d'autorité de certification à la chaîne de sécurisation.

Important

Lorsque le package d'autorité de certification est ajouté à la chaîne de confiance, chaque application sur cette instance de calcul fera confiance aux certificats signés avec l'autorité de certification indiquée dans ce package. Déterminez s'il s'agit d'un risque de sécurité acceptable.

  1. Extrayez le certificat de l'adresse iaas de Compute Cloud@Customer.

    curl --insecure -sS -o external_ca.crt --noproxy "*" https://iaas.ccc_name.domain_name/cachain
  2. Vérifiez le contenu du package d'autorité de certification enregistré dans le fichier external_ca.crt.

  3. Mettez à jour la chaîne de confiance globale de l'autorité de certification.

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

Les étapes 1 et 3 de cette méthode peuvent se trouver dans un script transmis à l'instance lors du lancement à l'aide de l'option --user-data-file ou de l'option --metadata avec un champ user_data. Le script s'exécute par cloud-init à l'intérieur de l'instance pendant l'initialisation, ce qui permet d'économiser le temps nécessaire pour effectuer ces étapes manuellement sur de nombreuses instances.