Configurando Instâncias para Serviços de Chamada

Uma instância de computação do Compute Cloud@Customer pode ser configurada para permitir que os aplicativos executados na instância chamem serviços e gerenciem recursos semelhantes à maneira como os usuários do Compute Cloud@Customer chamam serviços para gerenciar recursos.

O recurso do serviço IAM que permite que instâncias sejam atores autorizados (ou principais) para executar ações em recursos do serviço é chamado de principal da instância.

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 do 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 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 na 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. Crie um script para restaurar automaticamente a configuração de firewall atual (modificada) na reinicialização.

    Neste exemplo, o script é chamado /sbin/restore-iptables.sh. Veja a seguir 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 de /etc/systemd/system/restore-iptables.service. Veja a seguir 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 para 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 Compute Cloud@Customer, por padrão, os pontos finais (como iaas e identity) oferecem um certificado assinado por uma CA específica desse Compute Cloud@Customer. Por padrão, os sistemas operacionais não confiam nos certificados assinados por uma CA específica desse Compute Cloud@Customer. Se o SO não confiar nos certificados oferecidos, as tentativas de usar o OCI SDK ou a CLI 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 na instância.

Importante

Qualquer usuário que possa acessar a instância via SSH herdará automaticamente os privilégios concedidos à instância.

Opção 1: Traga seu próprio certificado (BYOC)

No Compute Cloud@Customer, 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 que são confiáveis por padrão:

trust list --filter=ca-anchors

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

Esse método copia o pacote de CAs específico do Compute Cloud@Customer 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 da infraestrutura do Compute Cloud@Customer.

    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 pacote de CAs no código Python SDK.

    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: Confie Globalmente no Pacote de CA do Oracle Compute Cloud@Customer

Este método é o mesmo que o método anterior com a seguinte diferença: Em vez de especificar o bundle de CAs no código SDK, este método adiciona o bundle de CAs à cadeia de confiança.

Importante

Quando o bundle de CAs é adicionado à cadeia de confiança, todos os aplicativos nesta instância de computação confiarão em certificados assinados com a CA especificada neste bundle. Considere se esse é um risco de segurança aceitável.

  1. Recupere o certificado do ponto final iaas da infraestrutura do Compute Cloud@Customer.

    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 confiança da CA global.

    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 por cloud-init dentro da instância durante a inicialização, economizando o esforço de executar essas etapas manualmente em muitas instâncias.