Descrição
Uso - Opções de configuração e funcionalidades adicionais
Limitações - compatibilidade do sistema operacional, etc.
api
vs métodos de instalação local
Desenvolvimento - Guia para contribuir com o módulo
Licença
O módulo falcon
instala, configura e gerencia o serviço falcon
em vários sistemas operacionais e distribuições.
Nota :
puppet-falcon
é um projeto de código aberto, não um produto CrowdStrike. Como tal, não traz qualquer suporte formal, expresso ou implícito.
Todos os parâmetros do módulo falcon estão contidos na classe falcon
principal. Existem muitas opções que modificarão o que o módulo faz. Consulte REFERENCE.md para obter mais detalhes.
Abaixo estão alguns dos casos de uso comuns.
Nota : os pacotes
falcon
não são públicos, portanto este módulo tem duas opções para instalar o sensor falcon. Usando o parâmetroinstall_method
você pode escolherapi
oulocal
.api
é o padrão. Mais informações estão descritas em métodos de instalação API versus local.
# usando a classe de método `api` {'falcon': client_id => Sensitive('12346'), client_secret => Sensitive('12345'), cid => 'AJKQUI123JFKSDFJK`}
# usando o método `local`$package_options = { 'ensure' => 'present', 'source' => '/tmp/sensor.rpm' # quaisquer outros atributos que sejam válidos para o pacote resource}class {'falcon' : install_method => 'local', package_options => $package_options, cid => 'AJKQUI123JFKSDFJK`}
api
Os métodos de instalação api
usam a API para baixar o pacote do sensor. A versão do pacote baixado é determinada pelos parâmetros passados ao módulo.
Existem três parâmetros que alteram o comportamento do método de instalação api
. Somente um desses parâmetros pode ser usado por vez e eles são avaliados na ordem em que estão listados abaixo.
version
- fará o download do pacote de sensores correspondente à versão que você especificar.
update_policy
– fará o download da versão especificada pela política de atualização.
version_decrement
- Irá baixar a n
versão antes da versão atual.
As desvantagens de usar o método de instalação api
são descritas em Métodos de instalação API versus Local.
Exemplos de cada um estão abaixo. Usando o parâmetro version
Isso tem precedência sobre update_policy
e version_decrement
.
class { 'falcon': client_id => Sensitive('12346'), client_secret => Sensitive('12345'), versão => '1.0.0', cid => 'AJKQUI123JFKSDFJK`}
Usando o parâmetro update_policy
Isso tem precedência sobre o parâmetro version_decrement
.
class { 'falcon': client_id => Sensitive('12346'), client_secret => Sensitive('12345'), update_policy => 'platform_default', cid => 'AJKQUI123JFKSDFJK`}
Usando o parâmetro version_decrement
Use version_decrement
para baixar a versão nx
.
Um valor 0
fará o download da versão mais recente e um valor 2
fará o download da versão n-2
( 2
versões atrás da mais recente).
class { 'falcon': client_id => Sensitive('12346'), client_secret => Sensitive('12345'), version_decrement => 2, cid => 'AJKQUI123JFKSDFJK`}
local
O método de instalação local
oferece controle total sobre como o sensor é instalado.
Alguns motivos pelos quais você pode usar este método são:
Você deseja instalar o sensor a partir de um arquivo local
Você tem seu próprio sistema de gerenciamento de pacotes
Você pode aprender mais sobre o método de instalação local
em API versus métodos de instalação local.
Ao usar o método de instalação local
, package_options
é necessário. Os parâmetros em package_options
são passados para o recurso package
. Você deve fornecer todos os parâmetros necessários para o recurso package
exceto o parâmetro name
. O módulo escolherá o nome apropriado com base no sistema operacional. Você ainda pode substituir o nome especificando a propriedade name
no hash package_options
.
# Usando um arquivo localfile {'/tmp/sensor.rpm': garantir => 'presente', fonte => 'https://company-filer-server.com/sensor.rpm'}class {'falcon': install_method => 'local', package_options => { 'ensure' => 'presente', 'source' => '/tmp/sensor.rpm' }, require => Arquivo['/tmp/sensor.rpm'] }
# Usando uma classe de origem http {'falcon': install_method => 'local', package_options => { 'ensure' => 'present', 'source' => 'http://example.com/sensor.rpm' } }
# Substituindo o nome parâmetroclass {'falcon': install_method => 'local', package_options => { 'ensure' => 'present', 'source' => '/tmp/sensor.rpm', 'name' => ' sensor falcão' } }
Quando install_method
é api
você pode usar o parâmetro cleanup_installer
para remover o arquivo do instalador após a instalação.
class { 'falcon': client_id => Sensitive('12346'), client_secret => Sensitive('12345'), cleanup_installer => true, cid => 'AJKQUI123JFKSDFJK`}
Você pode substituir qualquer parâmetro passado para o recurso package
usando o parâmetro package_options
. Parâmetros de pacote válidos
Isso funciona da mesma forma nos métodos de instalação api
e local
.
$package_options = { 'provider' => 'rpm', 'install_options' => '--force', }class { 'falcão': package_options => $package_options}
class {'falcon': package_manage => false # ... outros parâmetros necessários}
Nota O agente Windows só pode ser configurado no momento da instalação. O agente Linux vem com
falconctl
que permite que o puppet configure o agente após a instalação. Por exemplo: atualizar a propriedadecid
em seu recurso atualizará ocid
no agente Linux na próxima execução, mas não no Windows.
class {'falcon': config_manage => false # ... outros parâmetros necessários}
class {'falcon': service_manage => false # ... outros parâmetros necessários}
cid
class {'falcon': cid => 'AJKQUI123JFKSDFJK` # ... outros parâmetros necessários}
cid
com um token de provisionamento Se sua empresa exigir um token de provisionamento para registrar um agente, você poderá usar o parâmetro provisioning_token
.
class {'falcon': cid => 'AJKQUI123JFKSDFJK`, provisioning_token => '1234567890' # ... outros parâmetros necessários}
Você pode usar os parâmetros proxy_host
, proxy_port
e proxy_enabled
para definir as configurações de proxy para seu agente.
Nota As instalações do Mac não possuem configurações de proxy específicas para o agente. Em vez disso, usa as configurações de proxy do sistema operacional. Passar valores para esses parâmetros não definirá nenhuma configuração de proxy para Mac.
classe {'falcon': cid => 'AJKQUI123JFKSDFJK`, provisioning_token => '1234567890,' proxy_host => 'neptune.example.com', proxy_port => '8080', proxy_enabled => true
}
Se quiser fixar a versão do agente em uma versão específica usando o método de instalação api
, você pode definir version_manage
como true.
No nosso exemplo abaixo usamos version_decrement
, mas funciona da mesma forma para todos. O Puppet consultará a API para determinar qual versão version_decrement => 2
resolve. Em seguida, ele fará o download dessa versão e garantirá que ela esteja instalada.
Cada execução subsequente verificará a API para ver se a versão retornada é a instalada. Se, por exemplo, uma nova versão for lançada, isso fará com que a versão retornada da verificação seja alterada, fazendo com que o agente seja atualizado para a nova versão n-2
.
warning : Isso faz com que o módulo consulte a API a cada execução para garantir que a versão que a API retorna é a versão que está instalada. Isto pode causar problemas de limite de taxa para grandes implantações. Se você deseja ter upgrades/downgrades automatizados e usar o método de instalação
api
, geralmente é sugerido definirversion_manage
comofalse
e permitir que a Política de Atualização CrowdStrike faça os upgrades/downgrades em vez do Puppet.
class {'falcon': version_manage => true client_id => Sensitive('12346'), client_secret => Sensitive('12345'), update_policy => 'platform_default' cid => 'AJKQUI123JFKSDFJK` # ... outros parâmetros necessários}
Usando o install_method
do local
class {'falcon': install_method => 'local', package_options => { 'ensure' => '32.4.3', 'source' => '/tmp/sensor-32.4.3.rpm' } }
api
vs métodos de instalação local
Geralmente, o método api
será adequado para a maioria dos casos de uso se version_manage
estiver definido como false
. Se version_manage
estiver definido como true
você poderá atingir limites de taxa de API.
Você pode usar o método de instalação local
se quiser controle total e não quiser aproveitar a API.
Geralmente os módulos Puppet que gerenciam um pacote controlam todo o ciclo de vida desse pacote, desde a instalação até a remoção. O fato de os pacotes de agentes CrowdStrike não serem públicos torna isso difícil.
Ainda queríamos oferecer uma maneira prática de instalar rapidamente um pacote, então criamos o método de instalação api
. Este método exigirá que você forneça credenciais de API e, em seguida, baixaremos a versão correta do pacote da API CrowdStrike. Existem parâmetros que permitem controlar o comportamento, como definir update_policy
. Isso fará com que o módulo baixe a versão correta com base no que a política de atualização sugere. Exemplos de cada um aqui.
No entanto, este método pode não ser adequado para todos, portanto foi criado o método de instalação local
que oferece controle total sobre como o sensor é instalado.
api
O método de instalação da API usará a API Falcon para baixar a versão correta do pacote. A versão correta do pacote depende dos parâmetros que você fornece. Você pode ver exemplos de cada um aqui.
A primeira execução fará com que o Puppet chame as APIs CrowdStrike apropriadas para obter as informações necessárias para baixar o pacote do sensor. Em seguida, ele fará o download do pacote do sensor. Depois disso, os recursos normais das marionetes assumem o controle.
Se você definir version_manage
como true
cada execução fará com que o módulo consulte a API CrowdStrike para obter a versão apropriada do pacote. Em seguida, determinará se a versão instalada é igual à versão retornada. Se eles não forem iguais, ele baixará a versão correta do pacote e executará as ações apropriadas de instalação/atualização/downgrade.
Se você definir version_manage
como false
, as chamadas de API só acontecerão quando o sensor CrowdStrike não estiver instalado.
A principal limitação do método de instalação api
são os limites de taxa da API. Nós mesmos não os atingimos, mas pode ser possível que grandes instalações atinjam um limite de taxa ao usar o método api
install com version_manage
definido como true
.
Cada vez que o Puppet compila um catálogo para um nó, ele usa a API para determinar qual versão do agente deve ser instalada. Se o agente já estiver na versão correta, nenhuma outra chamada de API será feita.
Definir version_manage
como false
impedirá qualquer chamada de API, a menos que o agente não esteja instalado.
A melhor maneira de reduzir as chamadas de API é definir version_manage
como false
. Isso garantirá que a API seja chamada apenas quando o agente não estiver instalado. Isso deve evitar problemas de limite de taxa de API.
As plataformas Apple exigem um perfil Mobile Device Management (MDM) para instalar extensões de kernel sem aviso do usuário. Devido a esta limitação, este módulo irá apenas baixar e instalar o Sensor Falcon. O guia de implantação do Mac na documentação do CrowdStrike descreve as etapas necessárias para configurar o sensor Mac para começar a reportar para um CID
.
Se você deseja desenvolver novo conteúdo ou melhorar esta coleção, abra um problema ou crie uma solicitação pull. Todas as contribuições são bem-vindas!
Consulte a LICENÇA para obter mais informações.