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:
-
Configure o firewall da instância para permitir que a instância acesse pontos finais de serviço. Consulte Configurando Firewalls de Instância para Permitir a Chamada de Serviços.
-
Certifique-se de que a instância esteja incluída em um grupo dinâmico (configurado em sua tenancy) que conceda permissões para acessar os recursos necessários. Consulte Gerenciando Grupos Dinâmicos.
A instância deve ser criada ou movida para um compartimento nomeado em uma regra de correspondência do grupo dinâmico ou a instância deve ter uma tag de recurso designada que seja nomeada em uma regra de correspondência. Consulte Gravando Regras de Correspondência para Definir Grupos Dinâmicos.
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
-
-
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
eidentity
. -
Use o comando
iptables
para adicionar as seguintes regrasBareMetalInstanceServices
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.
-
Salve a configuração atualizada das tabelas IP.
iptables-save > /etc/sysconfig/iptables.rules
-
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
-
Defina o bit executável no script.
chmod +x /sbin/restore-iptables.sh
-
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
-
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.
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
).
-
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 campouser_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. -
Verifique o conteúdo do bundle de CAs salvo no arquivo
external_ca.crt
. -
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.
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.
-
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
-
Verifique o conteúdo do bundle de CAs salvo no arquivo
external_ca.crt
. -
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.