Configurare un vault per un endpoint personalizzato

Per creare un endpoint personalizzato per l'istanza di Visual Builder, è possibile utilizzare il servizio di gestione delle chiavi in OCI per creare un vault in cui memorizzare le chiavi di cifratura principali e i segreti utilizzati per proteggere l'accesso all'endpoint personalizzato.

In OCI Console è possibile creare un vault OCI nel compartimento in cui si desidera creare l'endpoint personalizzato. Per ulteriori dettagli sull'utilizzo dei vault, vedere Utilizzo dei compartimenti, Panoramica del vault e Creazione di un nuovo vault.

Nota

Se si utilizza un WAF e un load balancer per proteggere l'endpoint personalizzato, non è necessario creare un vault.

Dopo aver creato e configurato un vault in OCI Console, è possibile configurare il primo endpoint personalizzato (primario) dell'istanza nella pagina dei dettagli dell'istanza di Visual Builder. Se l'istanza dispone già di un endpoint primario e si desidera aggiungerne un altro, è necessario creare un endpoint alternativo dalla riga di comando. Analogamente, se l'istanza dispone già di più endpoint personalizzati e si desidera modificarne uno qualsiasi, è necessario farlo anche dalla riga di comando. Per i dettagli, vedere Crea e aggiorna endpoint alternativi.

Quando crei il segreto nel tuo vault, dovrai fornire un certificato segreto che contenga:

  • il certificato SSL del nome host,
  • la chiave privata corrispondente, e
  • tutti i certificati intermedi nella catena SSL.

Dovrai anche fornire una passphrase se il certificato SSL ne richiede una. È possibile ottenere questi dal provider di certificati SSL.

Nota

È possibile utilizzare openssl per convalidare il certificato e la chiave privata SSL.

Per creare e configurare un vault OCI nella console OCI, effettuare le operazioni riportate di seguito.

  1. In OCI Console, fare clic su Menu di navigazione l'icona Menu, selezionare Identità e sicurezza, quindi selezionare Vault per aprire la pagina Vault.
  2. Nella pagina Vault fare clic su Crea vault per aprire il pannello Crea vault.

    Nel pannello Crea vault confermare che si sta creando il vault nel compartimento corretto. Se non si è nel compartimento corretto, selezionare il compartimento nell'elenco a discesa Crea nel compartimento.

  3. Immettere un nome per il vault. Fare clic su Crea vault per tornare alla pagina Vault.


    Dopo aver fatto clic su Crea vault, la visualizzazione del nuovo vault nella tabella nella pagina Vault può richiedere alcuni minuti.

  4. Nella tabella della pagina Vault, fare clic sul nome del vault creato per aprire la pagina dei dettagli del vault.
  5. Creare una chiave di cifratura primaria per il vault.
    1. Aprire la scheda Chiavi di cifratura principali del vault.
    2. Fare clic su Crea chiave per aprire il pannello Crea chiave.
    3. Inserire un nome per la chiave nel campo Nome.

      Per creare la chiave, è sufficiente inserire un nome. Utilizzare le impostazioni predefinite per le altre opzioni.

    4. Fare clic su Crea chiave per tornare alla scheda Chiavi di cifratura principali.
  6. Creare il segreto.

    Memorizza il certificato come segreto nel vault OCI. Per ulteriori informazioni sui segreti, vedere Crea un nuovo segreto.

    1. Aprire la scheda Secrets del vault.
    2. Fare clic su Crea segreto per aprire il pannello Crea segreto.
    3. Immettere un nome e un'indicazione per il segreto.
    4. Nell'elenco a discesa Chiave di cifratura selezionare la chiave creata nella scheda Chiavi di cifratura master.
    5. Selezionare Generazione manuale segreto.

      Assicurarsi di selezionare in modo esplicito Generazione manuale segreto. L'impostazione predefinita è Generazione automatica segreto.



    6. Generare il certificato segreto e incollarlo nel campo Contenuto segreto.

      Utilizzare il formato seguente per il certificato:

      {
        "key": "-----BEGIN PRIVATE KEY-----\n…..-----END PRIVATE KEY-----\n",
        "cert": "-----BEGIN CERTIFICATE-----\n….-----END CERTIFICATE-----\n",
        "intermediates": [
          "-----BEGIN CERTIFICATE-----\n….-----END CERTIFICATE-----\n",
          "-----BEGIN CERTIFICATE-----\n….-----END CERTIFICATE-----\n"
        ],
        "passphrase": "<private key password if encrypted key is provided>"
      }
      Durante la generazione del certificato, tenere presenti i seguenti requisiti:
      • Gli elementi key e cert sono obbligatori.
      • Ogni certificato intermedio deve essere specificato come elemento separato in un array intermediates. Nella maggior parte dei casi ci sarà solo un intermediario. L'intermedio è fornito dal provider SSL.
      • Assicurarsi sempre che la CA radice finale sia specificata come ultimo elemento dell'array. Ad esempio, se esistono tre certificati intermedi per il certificato foglia, il certificato che ha emesso il certificato foglia dovrebbe essere l'elemento intermediates[0], il certificato che ha emesso il certificato intermediates[0] dovrebbe andare nell'elemento intermediates[1] e il certificato che ha emesso il certificato intermediates[1] dovrebbe andare nell'elemento intermediates[2].
      • L'attributo passphrase è obbligatorio solo se la chiave privata è cifrata con una passphrase. Non includere l'attributo se non è obbligatorio.
      • Se si utilizza una chiave privata cifrata, è necessario il formato seguente (è supportato PKCS1):
        -----BEGIN RSA PRIVATE KEY-----
        Proc-Type: 4,ENCRYPTED
        -----END RSA PRIVATE KEY-----
        

        Un file JSON con una chiave privata cifrata è il seguente:

        {
          "key": "-----BEGIN RSA PRIVATE KEY-----\nProc-Type: 4,ENCRYPTED\n....\n-----END RSA PRIVATE KEY-----",
        ..
        ..
          "passphrase": "<passphrase to decrypt the key>"
        }
        

        Un file JSON con una chiave privata non cifrata è il seguente:

        {
          "key": "-----BEGIN RSA PRIVATE KEY-----\nvRXUK08v31bw2rnDLw+vjuX2i8ujHWs\n....\n-----END RSA PRIVATE KEY-----",
        ..
        ..
        }
        
      • Se la chiave privata è in formato PKCS8, è necessario convertirla in formato PKCS1:
        openssl rsa -in <input_pkcs8_encrypted_private_key> -out <converted_encrypted_private_key_file_name> -aes256
      Nota

      Si consiglia vivamente di generare il certificato JSON dalla riga di comando Linux/Unix, o dalle utility Unix, per garantire che le terminazioni della riga siano codificate correttamente. Le finali di riga errate genereranno un errore.

      • Per evitare errori manuali, è anche possibile convertire il certificato PEM in un'unica riga contenente "\n", come previsto, con i seguenti comandi awk.

        Per il certificato foglia:

        awk -v RS= '{gsub(/\n+/, "\\n")}1' <cert_pem_file>

        Per ciascun certificato intermedio/radice:

        awk -v RS= '{gsub(/\n+/, "\\n")}1' <each_intermediate_cert_pem_file>

        Per la chiave privata:

        awk -v RS= '{gsub(/\n+/, "\\n")}1' <private_key_pem_file>
      • La versione più recente del segreto viene utilizzata quando si associa un endpoint personalizzato all'istanza tramite l'operazione di creazione o modifica dell'istanza. Per informazioni sulle versioni segrete, vedere Versioni segrete e stati di rotazione.
      • Se si utilizza un certificato di nome host la cui autorità di certificazione (CA) non si trova nel truststore di Visual Builder, è necessario anche caricare il certificato nell'istanza di Visual Builder. In caso contrario, viene restituita un'eccezione negli scenari in cui l'istanza si chiama.

      Utilizzare le impostazioni predefinite per le altre opzioni nella pagina Crea segreto.

    7. Fare clic su Crea segreto per tornare alla scheda Segreti.
  7. Creare un criterio IAM (Identity and Access Management) per effettuare le operazioni riportate di seguito.
    1. Consente al servizio Visual Builder di leggere la versione e il contenuto del segreto.

      Di seguito è riportata la sintassi dei criteri per un servizio Visual Builder.

      allow group <group-name> to read secret-bundle in compartment <secrets-compartment>

      Di seguito viene fornito un esempio.

      allow group VBInstanceAdmins to read secret-bundle in compartment MySecretCompartment

      Se l'istanza VB NON si trova in un dominio predefinito, è necessario includere il prefisso del dominio davanti al nome del gruppo.

      Di seguito viene fornito un esempio.

      Allow group mydomain/VBInstanceAdmins to read secret-bundle in compartment MySecretCompartment

    2. Consenti al gruppo di amministratori di accedere al segreto, alla chiave e al vault (o di creare un nuovo segreto, una nuova chiave e un nuovo vault), durante la creazione o l'aggiornamento di un'istanza di Visual Builder con un endpoint personalizzato.

      Di seguito è riportata la sintassi dei criteri.

      allow group <group-name> to manage secrets in compartment <secrets-compartment>

      allow group <group-name> to manage keys in compartment <secrets-compartment>

      allow group <group-name> to manage vaults in compartment <secrets-compartment>

      Ecco alcuni esempi:

      Allow group VBInstanceAdmins to manage secrets in compartment MySecretCompartment

      Allow group VBInstanceAdmins to manage keys in compartment MySecretCompartment

      Allow group VBInstanceAdmins to manage vaults in compartment MySecretCompartment

      Se l'istanza VB NON si trova in un dominio predefinito, è necessario includere il prefisso del dominio davanti al nome del gruppo.

      Di seguito sono riportati alcuni esempi.

      Allow group mydomain/VBInstanceAdmins to manage secrets in compartment MySecretCompartment

      Allow group mydomain/VBInstanceAdmins to manage keys in compartment MySecretCompartment

      Allow group mydomain/VBInstanceAdmins to manage vaults in compartment MySecretCompartment

    Si noti che è necessario specificare la risorsa da restituire in <resource-type>, come descritto in Dettagli per il servizio Vault.

    Per la sintassi dell'istruzione dei criteri, vedere la Tabella 3-1 sopra e la CreatePolicy API Request.