SentinelOne Linux扩展- Azure

gopyfrb3  于 2023-01-27  发布在  Linux
关注(0)|答案(2)|浏览(156)

我目前正在寻找通过Terraform部署SentinelOne代理。似乎没有太多关于Terraform方面的VM扩展使用的在线文档。有人通过Terraform扩展成功部署了S1代理吗?我不清楚要向设置/protected_settings块添加什么。感谢任何帮助。

"azurerm_virtual_machine_extension" "example" {
  name                 = "hostname"
  virtual_machine_id   = azurerm_virtual_machine.example.id
  publisher            = "SentinelOne.LinuxExtension"
  type                 = "LinuxExtension"
  type_handler_version = "1.0"
ukxgm1gy

ukxgm1gy1#

添加到terraform中的设置/受保护设置块

resource "azurerm_virtual_machine_extension" "example" {
  name                 = "hostname"
  virtual_machine_id   = azurerm_virtual_machine.example.id
  publisher            = "SentinelOne.LinuxExtension"
  type                 = "LinuxExtension"
  type_handler_version = "1.0"
 
settings = <<SETTINGS
    {
        "commandToExecute": "powershell.exe -Command \"${local.powershell_command}\""
    }
SETTINGS
  tags = {
    environment = "Production"
  }

  depends_on = [
    azurerm_virtual_machine.example
  ]
}
  • Settings-扩展的设置以字符串编码的JSON对象的形式提供。
  • protected settings与设置作为字符串中的JSON对象提供的方式相同,传递给扩展的受保护设置也是。

根据某些VM扩展,settingsprotected settings块中的键必须区分大小写。请确保这些键与Azure预期的一致(例如,JsonADDomainExtension 扩展的键应该在 TitleCase中)

***参考编号:***azurerm_virtual_machine_extension

p1iqtdky

p1iqtdky2#

手动安装插件并检查JSON输出,将显示以下设置块:

{
    "LinuxAgentVersion": "22.4.1.2",
    "SiteToken": "<your_site_token_here"
}

不幸的是,这遗漏了安装所需的一个关键字段,因为它是一个受保护的设置,即“API令牌”的字段名。

**UPDATE:**查找正确JSON键值后的工作扩展示例:

resource "azurerm_virtual_machine_extension" "testserver-sentinelone-extension" {
  name                      = "SentinelOneLinuxExtension"
  virtual_machine_id        = azurerm_linux_virtual_machine.testserver.id
  publisher                 = "SentinelOne.LinuxExtension"
  type                      = "LinuxExtension"
  type_handler_version      = "1.2"
  automatic_upgrade_enabled = false
  settings                  = <<SETTINGS
    {
      "LinuxAgentVersion": "22.4.1.2",
      "SiteToken": "<your_site_token_here>"
    }
SETTINGS

  protected_settings = <<PROTECTEDSETTINGS
    {
      "SentinelOneConsoleAPIKey": "${var.sentinel_one_api_token}"
    }
PROTECTEDSETTINGS
}

**EDIT:**通过在另一个测试系统上再次手动安装扩展,然后深入查看该VM上的waagent日志,以查看www.example.com脚本查询的值,解决了这个enable.sh问题。

# cat /var/lib/waagent/SentinelOne.LinuxExtension.LinuxExtension-1.2.0/scripts/enable.sh | grep Console
api_token=$(echo "$protected_settings_decrypted" | jq -r ".SentinelOneConsoleAPIKey")

相关问题