Configurando Instâncias para Serviços de Chamada

Uma instância de computação do Private Cloud Appliance pode ser configurada para permitir que os aplicativos em execução na instância chamem serviços e gerenciem recursos semelhantes à forma como os usuários do Private Cloud Appliance chamam serviços para gerenciar recursos.

O recurso de serviço IAM que permite que as instâncias sejam atores autorizados (ou controladores) para executar ações nos recursos de serviço é chamado de controlador de instâncias.

Execute as seguintes etapas para configurar e usar uma instância como principal:

Configurando Firewalls de Instância para Permitir Serviços de Chamada

Esta seção descreve como modificar a configuração do firewall da instância e como criar um serviço systemd para restaurar as alterações se o sistema for reinicializado.

Modificar a Configuração de Firewall
  1. Como usuário privilegiado, modifique a configuração do firewall da instância para permitir que a instância acesse pontos finais de serviço, como iaas e identity.

  2. Use o comando iptables para adicionar as seguintes regras do BareMetalInstanceServices ao firewall de instância:

    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

    A primeira entrada é obrigatória para todos os pontos finais. A segunda entrada é necessária para entrar em contato com o ponto final do Object Storage.

Tornar as Alterações de Configuração Persistentes

Use o procedimento a seguir para fazer com que essas alterações de configuração do firewall persistam nas reinicializações da instância.

  1. Salve a configuração atualizada das tabelas IP.

    iptables-save > /etc/sysconfig/iptables.rules
  2. Criar um script para restaurar automaticamente a configuração atual do firewall (modificado) na reinicialização.

    Neste exemplo, o script é chamado /sbin/restore-iptables.sh. Este é o conteúdo do arquivo /sbin/restore-iptables.sh:

    #!/bin/sh
    /sbin/iptables-restore < /etc/sysconfig/iptables.rules
  3. Defina o bit executável no script.

    chmod +x /sbin/restore-iptables.sh
  4. Crie um serviço systemd oneshot para executar o script /sbin/restore-iptables.sh no momento da inicialização.

    Neste exemplo, o serviço é chamado /etc/systemd/system/restore-iptables.service. Este é o conteúdo do arquivo /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. Recarregue a configuração do gerenciador systemd e ative o serviço a ser executado no momento da inicialização.

    systemctl daemon-reload
    systemctl enable restore-iptables

Configurando Certificados de Instância para Permitir Serviços de Chamada

No Private Cloud Appliance, por padrão, os pontos finais (como iaas e identity) oferecem um certificado assinado por uma CA específica desse Private Cloud Appliance. Por padrão, os sistemas operacionais não confiam em certificados assinados por uma CA específica desse Private Cloud Appliance. Se o sistema operacional não confiar nos certificados oferecidos, as tentativas de usar o OCI SDK ou a CLI do OCI falharão com um erro CERTIFICATE_VERIFY_FAILED.

Implemente uma das soluções descritas neste tópico para usar com sucesso o OCI SDK ou a CLI do OCI na instância.

Importante

Qualquer usuário que possa usar SSH para a instância herda automaticamente os privilégios concedidos à instância.

Opção 1: BYOC (Bring Your Own Certificate)

No Private Cloud Appliance, você pode fornecer seus próprios certificados de Autoridade de Certificação (CA) que permitem usar sua cadeia de confiança de CA. Para usar seus próprios certificados, abra uma Solicitação de Suporte e solicite o uso de seus próprios certificados. Consulte Criando uma Solicitação de Suporte. Para acessar o suporte, acesse a Console do Oracle Cloud conforme descrito em Acessar a Console do OCI.

Em um sistema operacional Linux, o seguinte comando lista CAs confiáveis por padrão:

trust list --filter=ca-anchors

Opção 2: Especificar no Código SDK o Pacote de CAs a Ser Usado

Esse método copia o bundle de CAs específico do Private Cloud Appliance para a instância, mas não verifica o certificado do servidor (--insecure). Para garantir a segurança, verifique o conteúdo do pacote recuperado (external_ca.crt).

  1. Recupere o certificado do ponto final iaas do Private Cloud Appliance.

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

    Esse comando pode estar em um script que é passado para a instância no momento da inicialização usando a opção --user-data-file ou a opção --metadata com um campo user_data. O script será executado por cloud-init dentro da instância durante a inicialização, salvando o esforço de recuperar manualmente esse arquivo de certificado em muitas instâncias.

  2. Verifique o conteúdo do bundle de CAs salvo no arquivo external_ca.crt.

  3. Especifique o bundle de CAs no código SDK do 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"

Opção 3: Confiar Globalmente no Pacote de CAs do Private Cloud Appliance

Esse método é igual ao método anterior com a seguinte diferença: em vez de especificar o bundle de CAs no código do SDK, esse método adiciona o bundle de CAs à cadeia de confiança.

Importante

Quando o bundle de CAs é adicionado à cadeia de confiabilidade, cada aplicativo desta instância de computação confiará em certificados assinados com a CA especificada neste bundle. Considere se este é um risco de segurança aceitável.

  1. Recupere o certificado do ponto final iaas do Private Cloud Appliance.

    curl --insecure -sS -o external_ca.crt --noproxy "*" https://iaas.ccc_name.domain_name/cachain
  2. Verifique o conteúdo do bundle de CAs salvo no arquivo external_ca.crt.

  3. Atualize a cadeia de confiabilidade global da CA.

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

As etapas 1 e 3 desse método podem estar em um script que é passado para a instância no momento da inicialização usando a opção --user-data-file ou a opção --metadata com um campo user_data. O script é executado pela cloud-init dentro da instância durante a inicialização, poupando o esforço de executar essas etapas manualmente em muitas instâncias.