Skip to main content

附加组件安全性

Home Assistant 根据所需权限对每个附加组件进行评级。评级为 6 的附加组件非常安全。如果附加组件的评级为 1,除非您 100% 确定可以信任该来源,否则您不应运行此附加组件。

API 角色​

要访问 Supervisor API,您需要定义一个角色或以默认模式运行。这仅适用于 Supervisor API,而不适用于 Home Assistant 代理。所有角色已经可以访问默认 API 调用,不需要任何额外设置。

可用角色​

角色描述
default具有对所有 info 调用的访问权限
homeassistant可以访问所有 Home Assistant API 端点
backup可以访问所有备份 API 端点
manager适用于运行 CLI 的附加组件并需要扩展权限
admin访问每个 API 调用。这是他们唯一可以禁用/启用附加组件保护模式的角色

Codenotary CAS​

您可以对您的镜像进行签名,并验证我们构建的基础镜像,以提供完整的信任链。此功能由我们的 Builder 和 构建配置 支持。要在您的附加组件的 Supervisor 上启用此功能,您只需将您的电子邮件地址添加到附加组件配置 codenotary 中。

保护​

默认情况下,所有附加组件在启用保护模式下运行。此模式防止附加组件获得系统上的任何权限。如果附加组件需要更多权限,您可以通过该附加组件的 API 附加组件选项禁用此保护。但是请小心,禁用保护的附加组件可能会破坏您的系统!

制作安全的附加组件​

作为开发人员,请遵循以下最佳实践以确保您的附加组件安全:

  • 不要在主机网络上运行
  • 创建一个 AppArmor 配置文件
  • 如果不需要写入访问,仅将文件夹映射为只读
  • 如果需要任何 API 访问,请确保不授予不需要的权限
  • 使用 Codenotary CAS 对镜像进行签名

使用 Home Assistant 用户后端​

不要允许用户在纯文本配置中设置新的登录凭据,而是使用 Home Assistant Auth 后端。您可以通过将 auth_api: true 启用对 API 的访问。现在您可以将登录凭据发送到认证后端并在 Home Assistant 中验证它们。

使用入口时认证用户​

当通过 Supervisor 的入口访问附加组件时,可以通过其会话令牌识别授权用户。然后,Supervisor 会在每个请求中添加一些标头以识别用户:

标头名称描述
X-Remote-User-Id已认证的 Home Assistant 用户的 ID
X-Remote-User-Name已认证用户的用户名
X-Remote-User-Display-Name已认证用户的显示名称