本文描述了 SPIRE Server 的命令行选项、server.conf 设置和内置插件。

本文档是 SPIRE Server 的配置参考。它包括有关插件类型、内置插件、服务器配置文件、插件配置和 spire-server 命令的命令行选项的信息。

插件类型

类型 描述
DataStore 提供持久存储和 HA 功能。注意:不再支持数据存储的可插入性。只能使用内置的 SQL 插件。
KeyManager 为服务器的签名操作实现签名和密钥存储逻辑。对于利用基于硬件的关键操作很有用。
NodeAttestor 为尝试断言其身份的节点实现验证逻辑。一般与同类型的代理插件搭配使用。
UpstreamAuthority 允许 SPIRE 服务器与现有 PKI 系统集成。
Notifier 由 SPIRE 服务器通知正在发生或已经发生的某些事件。对于正在发生的事件,通知者可以将结果告知 SPIRE 服务器。

内置插件

类型 名称 描述
DataStore sql 用于 SPIRE 数据存储的 SQLite、PostgreSQL 和 MySQL 数据库的 SQL 数据库存储
KeyManager aws_kms 管理 AWS KMS 中密钥的密钥管理器
KeyManager disk 管理保存在磁盘上的密钥的密钥管理器
KeyManager memory 管理内存中非持久密钥的密钥管理器
NodeAttestor aws_iid 使用 AWS 实例身份文档证明代理身份的节点证明者
NodeAttestor azure_msi 使用 Azure MSI 令牌证明代理身份的节点证明者
NodeAttestor gcp_iit 使用 GCP 实例身份令牌证明代理身份的节点证明者
NodeAttestor join_token 节点证明器,用于验证使用服务器生成的加入令牌进行证明的代理
NodeAttestor k8s_sat 使用 Kubernetes 服务帐户令牌证明代理身份的节点证明者
NodeAttestor k8s_psat 使用 Kubernetes 投影服务帐户令牌证明代理身份的节点证明者
NodeAttestor sshpop 使用现有 ssh 证书证明代理身份的节点证明者
NodeAttestor tpm_devid 节点证明者,使用已配置 DevID 证书的 TPM 证明代理身份
NodeAttestor x509pop 使用现有 X.509 证书证明代理身份的节点证明者
Notifier gcs_bundle 将最新信任包内容推送到 Google Cloud Storage 中的对象的通知程序。
Notifier k8sbundle 将最新信任包内容推送到 Kubernetes ConfigMap 的通知程序。
UpstreamAuthority disk 使用从磁盘加载的 CA 来签署 SPIRE 服务器中间证书。
UpstreamAuthority aws_pca 使用 AWS Certificate Manager 中的私有证书颁发机构来签署 SPIRE 服务器中间证书。
UpstreamAuthority awssecret 使用从 AWS SecretsManager 加载的 CA 来签署 SPIRE 服务器中间证书。
UpstreamAuthority gcp_cas 使用 GCP 证书颁发机构服务中的私有证书颁发机构来签署 SPIRE 服务器中间证书。
UpstreamAuthority vault 使用 HashiCorp Vault 中的 PKI 秘密引擎来签署 SPIRE 服务器中间证书。
UpstreamAuthority spire 使用同一信任域中的上游 SPIRE 服务器来获取 SPIRE 服务器的中间签名证书。
UpstreamAuthority cert-manager 使用引用的证书管理器颁发者来请求中间签名证书。

服务器配置文件

下表概述了 SPIRE 服务器的配置选项。这些可以在配置文件的顶级 server { ... } 部分中设置。大多数选项都有一个相应的 CLI 标志,如果设置了该标志,则该标志优先于文件中定义的值。

SPIRE 配置文件可以用 HCL 或 JSON 表示。请参阅示例配置文件部分以获取完整示例。

如果 -expandEnv 标志传递给 SPIRE,则在解析之前扩展 $VARIABLE${VARIABLE} 样式环境变量。这对于模板化配置文件(例如跨不同信任域)或插入数据库连接密码等机密可能很有用。

配置 描述 默认
admin_ids SPIFFE ID,当出现在呼叫者的 X509-SVID 中时,会授予该呼叫者管理员权限。管理 ID 必须驻留在服务器信任域或联合域中,并且不需要在服务器上有相应的管理注册条目。
agent_ttl 用于代理 SVID 的 TTL default_x509_svid_ttl 的值
audit_log_enabled 如果为 true,则启用审核日志记录 错误的
bind_address SPIRE 服务器的 IP 地址或 DNS 名称 0.0.0.0
bind_port SPIRE 服务器的 HTTP 端口号 8081
ca_key_type 用于服务器 CA 的密钥类型(X509 和 JWT),<rsa-2048|rsa-4096|ec-p256|ec-p384> ec-p256(JWT 密钥类型可以被 jwt_key_type 覆盖)
ca_subject CA 证书应使用的主题(见下文)
ca_ttl 默认 CA/签名密钥 TTL 24h
data_dir 服务器运行时可以使用的目录
default_x509_svid_ttl 默认 X509-SVID TTL 1h
default_jwt_svid_ttl 默认 JWT-SVID TTL 5m
experimental 可能会更改或删除的实验选项(见下文)
federation 用于联合的捆绑端点配置部分
jwt_key_type 用于服务器 CA (JWT) 的密钥类型, 如果未定义,则为 ca_key_type 或 ec-p256 的值
jwt_issuer 发行 JWT-SVID 时使用的发行者声明
log_file 将日志写入的文件
log_level 设置日志记录级别 信息
log_format 日志格式,text 或 json 文本
log_source_location 如果为 true,日志将包含源文件、行号和方法名称字段(增加一点运行时成本) 错误的
profiling_enabled 如果为 true,则启用 net/http/pprof 端点 错误的
profiling_freq 将分析数据转储到磁盘的频率。仅当 profiling_enabledtrueprofiling_freq > 0 时启用。
profiling_names 将在每个分析标记上转储到磁盘的配置文件名称列表,请参阅分析名称
profiling_port net/http/pprof 端点的端口号。仅当 profiling_enabledtrue 时使用。
ratelimit 速率限制配置,通常在服务器位于负载均衡器后面时使用(见下文)
socket_path 将 SPIRE 服务器 API 套接字绑定到的路径(仅限 Unix) /tmp/spire-server/private/api.sock
trust_domain 该服务器所属的信任域(不应超过 255 个字符)
ca_subject 描述 默认
country Country 值数组
organization Organization 值数组
common_name CommonName
实验性的 描述 默认
cache_reload_interval 两次重新加载内存条目缓存之间的时间量。增加此值将减轻超大型部署的高数据库负载,但也会减慢新条目或更新条目向代理的传播速度。 5s
auth_opa_policy_engine 用于授权决策的 auth opa_policy 引擎 默认 SPIRE 授权策略
named_pipe_name SPIRE Server API 命名管道的管道名称(仅限 Windows) \spire-server\private\api
速率限制 描述 默认
attestation 是否对节点证明进行速率限制。如果为 true,则节点证明的速率限制为每个 IP 地址每秒一次尝试。 真的
signing 是否对 JWT 和 X509 签名进行速率限制。如果为 true,JWT 和 X509 签名的速率限制为每个 IP 地址每秒 500 个请求(单独)。 真的
auth_opa_policy_engine 描述 默认
local 授权策略的本地 OPA 配置。
auth_opa_policy_engine.local 描述 默认
rego_path 用于检索 OPA rego 策略以进行授权的文件。
policy_data_path 用于检索数据绑定以进行策略评估的文件。

分析名称

这些是可以在 profiling_freq 配置值中设置的可用配置文件:

  • goroutine
  • threadcreate
  • heap
  • block
  • mutex
  • trace
  • cpu

插件配置

服务器配置文件还包含各种 SPIRE 服务器插件的配置部分。插件配置位于顶级 plugins { ... } 部分,其格式如下:

plugins {
    pluginType "pluginName" {
        ...
        plugin configuration options here
        ...
    }
}

以下配置选项可用于配置插件:

配置 描述
插件命令 插件实现二进制文件的路径(可选,内置插件不需要)
插件校验和 插件二进制文件的可选 sha256(可选,内置不需要)
已启用 启用或禁用插件(默认启用)
插件数据 插件特定数据

请参阅下面的内置插件部分,了解有关开箱即用的插件的信息。

联邦配置

SPIRE 服务器可以配置为与位于不同信任域中的其他 SPIRE 服务器联合。SPIRE 支持在 SPIRE 服务器配置文件中(静态关系)和通过信任域 API(动态关系)配置联合关系。本节介绍如何在配置文件中配置静态定义的关系。

注意:静态关系优先于动态关系。如果需要配置动态关系,请参见 federation 命令。静态关系不会反映在 federation 命令中。

配置联合信任域允许信任域对其他 SPIFFE 机构颁发的身份进行身份验证,从而允许一个信任域中的工作负载安全地对外部信任域中的工作负载进行身份验证。实现联合的一个关键要素是使用 SPIFFE 捆绑端点,这些资源(由 URL 表示)为信任域提供信任捆绑的副本。使用 federation 部分,你将能够将 SPIRE 设置为 SPIFFE 捆绑包端点服务器,并配置此 SPIRE 服务器将从中获取捆绑包的联合信任域。

server {
    .
    .
    .
    federation {
        bundle_endpoint {
            address = "0.0.0.0"
            port = 8443
            refresh_hint = "10m"
            profile "https_web" {
                acme {
                    domain_name = "example.org"
                    email = "[email protected]"
                }
            }
        }
        federates_with "domain1.test" {
            bundle_endpoint_url = "https://1.2.3.4:8443"
            bundle_endpoint_profile "https_web" {}
        }
        federates_with "domain2.test" {
            bundle_endpoint_url = "https://5.6.7.8:8443"
            bundle_endpoint_profile "https_spiffe" {
                endpoint_spiffe_id = "spiffe://domain2.test/beserver"
            }
        }
    }
}

federation.bundle_endpoint 部分是可选的,用于在 SPIRE 服务器中设置 SPIFFE 捆绑端点服务器。 federation.federates_with 部分也是可选的,用于配置与外部信任域的联合关系。此部分用于 SPIRE 服务器将定期获取捆绑包的每个联合信任域。

federation.bundle_endpoint 的配置选项

此可选部分包含 SPIRE 服务器用于公开捆绑端点的配置。

配置 描述
address 该服务器将侦听 HTTP 请求的 IP 地址
port 该服务器将侦听 HTTP 请求的 TCP 端口号
refresh_hint 允许手动指定刷新提示。如果未设置,则根据捆绑包中密钥的生命周期确定。小值允许及时检索信任包更新
profile “<https_web|https_spiffe>” 允许配置捆绑配置文件

federation.bundle_endpoint.profile 的配置选项

当设置 bundle_endpoint 时,它是 required 来指定捆绑配置文件。

允许的配置文件:

  • https_web 允许配置自动证书管理环境部分。
  • https_spiffe

federation.bundle_endpoint.profile "https_web".acme 的配置选项

配置 描述 默认
directory_url 目录端点 URL https://acme-v02.api.letsencrypt.org/directory
domain_name 证书管理器尝试检索新证书的域
email 联系电子邮件地址。Let’s Encrypt 等 CA 使用它来通知已颁发证书的问题
tos_acceptted 接受 ACME 服务条款。如果没有设置为 true,并且提供商要求接受,则证书检索将失败 false

federation.bundle_endpoint.profile "https_spiffe" 的配置选项

默认捆绑配置文件配置。

federation.federates_with["<trust domain>"].bundle_endpoint 的配置选项

可选的 federates_with 部分是捆绑端点配置文件配置的映射,以该服务器想要联合的 "<trust domain>" 的名称为键。此部分具有以下可配置项:

配置 描述 默认
bundle_endpoint_url 提供要联合的信任捆绑包的 SPIFFE 捆绑包端点的 URL。必须使用 HTTPS 协议。
bundle_endpoint_profile “<https_web | https_spiffe>” SPIFFE 端点配置文件类型的配置。

SPIRE 支持 https_webhttps_spiffe 捆绑端点配置文件。

https_web 配置文件不需要额外的设置。

使用 https_spiffe 捆绑端点配置文件配置的信任域必须使用 endpoint_spiffe_id 设置作为配置的一部分来指定远程 SPIFFE 捆绑端点服务器的预期 SPIFFE ID。

有关 SPIFFE 中定义的不同配置文件的更多信息,以及设置 SPIFFE 联合的安全注意事项,请参阅 SPIFFE 联邦标准

遥测配置

请参阅遥测配置指南,了解有关配置 SPIRE 服务器以发出遥测数据的更多信息。

健康检查配置

服务器可以公开可用于健康检查的附加端点。它可以通过设置 listener_enabled = true 来启用。目前它公开了 2 条路径:一条用于活动(服务器是否已启动?),另一条用于准备(服务器是否准备好服务请求?)。默认情况下,健康检查端点将侦听 localhost:80,除非另有配置。

health_checks {
        listener_enabled = true
        bind_address = "localhost"
        bind_port = "8080"
        live_path = "/live"
        ready_path = "/ready"
}

命令行选项

spire-server run

上面的大多数配置文件选项都有相同的命令行对应项。此外,还可以使用以下标志。

命令 行动 默认
-bindAddress SPIRE 服务器的 IP 地址或 DNS 名称
-config SPIRE 配置文件的路径 conf/服务器/服务器.conf
-dataDir 存储运行时数据的目录
-expandEnv 展开配置文件中的环境 $VARIABLES
-logFile 将日志写入的文件
-logFormat 日志格式,
-logLevel 调试、信息、警告或错误
-serverPort SPIRE 服务器的端口号
-socketPath 将 SPIRE 服务器 API 套接字绑定到的路径
-trustDomain 该服务器所属的信任域(不应超过 255 个字符)

将 SPIRE Server 作为 Windows 服务运行

在 Windows 平台上,SPIRE Server 可以选择作为 Windows 服务运行。作为 Windows 服务运行时,唯一支持的命令是 run 命令。

注意:SPIRE 不会自动在系统中创建该服务,必须由用户创建。启动服务时,使用 run 命令执行 SPIRE Server 的所有参数都必须作为服务参数传递。

创建 SPIRE Server Windows 服务的示例
> sc.exe create spire-server binpath=c:\spire\bin\spire-server.exe
运行 SPIRE Server Windows 服务的示例
> sc.exe start spire-server run -config c:\spire\conf\server\server.conf

spire-server token generate

生成一个节点加入令牌并为其创建一个注册条目。该令牌可用于引导一个 spire-agent 安装。除了基于令牌的 ID 之外,可选的 -spiffeID 可用于为令牌提供人类可读的注册条目名称。

命令 行动 默认
-socketPath SPIRE 服务器 API 套接字的路径 /tmp/spire-server/private/api.sock
-spiffeID 用于分配令牌所有者的附加 SPIFFE ID(可选)
-ttl 令牌 TTL(以秒为单位) 600

spire-server entry create

创建注册条目。

命令 行动 默认
-admin 如果设置,此条目中的 SPIFFE ID 将被授予对服务器 API 的访问权限
-data 包含 JSON 格式的注册数据的文件的路径(可选,如果指定,则必须省略与条目信息相关的其他标志)。如果设置为“-”,则从 stdin 读取 JSON。
-dns DNS 名称将包含在基于此条目发布的 SVID 中(如果适用)。可以多次使用
-downstream 布尔值,设置后表示该条目描述下游 SPIRE 服务器
-entryExpiry 从数据存储中删除生成的注册条目的到期时间(以秒为单位)。请注意,这是一项数据管理功能,而不是安全功能(可选)。
-entryID 新创建的注册条目的用户指定 ID(可选)。如果没有提供条目 ID,则会在创建时生成一个
-federatesWith 代表与此注册条目联合的信任域的信任域 SPIFFE ID 列表。该信任域的捆绑包必须已存在
-node 如果设置,此条目将应用于匹配节点而不是工作负载
-parentID 该记录父记录的 SPIFFE ID。
-selector 用于证明的冒号分隔的类型:值选择器。该参数可以多次使用,以指定必须满足的多个选择器。
-socketPath SPIRE 服务器 API 套接字的路径 /tmp/spire-server/private/api.sock
-spiffeID 该记录代表的 SPIFFE ID 并将被设置为颁发的 SVID。
-x509SVIDTTL 作为此记录的结果而发出的任何 X509-SVID 的 TTL(以秒为单位)。覆盖 -ttl 值。 使用 default_x509_svid_ttl 配置的 TTL
-jwtSVIDTTL 作为此记录的结果而发出的任何 JWT-SVID 的 TTL(以秒为单位)。覆盖 -ttl 值。 使用 default_jwt_svid_ttl 配置的 TTL
-storeSVID 一个布尔值,设置后表示必须通过 SVIDStore 插件存储从此条目生成的 SVID

spire-server entry update

更新注册条目。

命令 行动 默认
-admin 如果为 true,则此条目中的 SPIFFE ID 将被授予对服务器 API 的访问权限
-data 包含 JSON 格式的注册数据的文件的路径(可选,如果指定,则必须省略与条目信息相关的其他标志)。如果设置为“-”,则从 stdin 读取 JSON。
-dns DNS 名称将包含在基于此条目发布的 SVID 中(如果适用)。可以多次使用
-downstream 布尔值,设置后表示该条目描述下游 SPIRE 服务器
-entryExpiry 到期时间(以秒为单位),用于修剪生成的注册条目
-entryID 要更新的记录的注册条目 ID
-federatesWith 代表与此注册条目联合的信任域的信任域 SPIFFE ID 列表。该信任域的捆绑包必须已存在
-parentID 该记录父记录的 SPIFFE ID。
-selector 用于证明的冒号分隔的类型:值选择器。该参数可以多次使用,以指定必须满足的多个选择器。
-socketPath SPIRE 服务器 API 套接字的路径 /tmp/spire-server/private/api.sock
-spiffeID 该记录代表的 SPIFFE ID 并将被设置为颁发的 SVID。
-x509SVIDTTL 作为此记录的结果而发出的任何 X509-SVID 的 TTL(以秒为单位)。覆盖 -ttl 值。 使用 default_x509_svid_ttl 配置的 TTL
-jwtSVIDTTL 作为此记录的结果而发出的任何 JWT-SVID 的 TTL(以秒为单位)。覆盖 -ttl 值。 使用 default_jwt_svid_ttl 配置的 TTL
storeSVID 一个布尔值,设置后表示必须通过 SVIDStore 插件存储从此条目生成的 SVID

spire-server entry count

显示注册条目总数。

命令 行动 默认
-socketPath SPIRE 服务器 API 套接字的路径 /tmp/spire-server/private/api.sock

spire-server entry delete

删除指定的注册条目。

命令 行动 默认
-entryID 要删除的记录的注册条目 ID
-socketPath SPIRE 服务器 API 套接字的路径 /tmp/spire-server/private/api.sock

spire-server entry show

显示配置的注册条目。

命令 行动 默认
-downstream 布尔值,设置后表示该条目描述下游 SPIRE 服务器
-entryID 要显示的记录的条目 ID。
-federatesWith 与条目联合的信任域的 SPIFFE ID。可以多次使用
-parentID 要显示的记录的父 ID。
-selector 以冒号分隔的类型:值选择器。可以多次使用来指定多个选择器。
-socketPath SPIRE 服务器 API 套接字的路径 /tmp/spire-server/private/api.sock
-spiffeID 要显示的记录的 SPIFFE ID。

spire-server bundle count

显示捆绑包的总数。

命令 行动 默认
-socketPath SPIRE 服务器 API 套接字的路径 /tmp/spire-server/private/api.sock

spire-server bundle show

显示服务器信任域的捆绑包。

命令 行动 默认
-format 显示捆绑包的格式。 pemspiffe pem
-socketPath SPIRE 服务器 API 套接字的路径 /tmp/spire-server/private/api.sock

spire-server bundle list

显示联合捆绑包。

命令 行动 默认
-id 要显示的捆绑包的信任域 SPIFFE ID。如果未设置,则显示所有信任包
-format 显示联合捆绑包的格式。 pemspiffe pem
-socketPath SPIRE 服务器 API 套接字的路径 /tmp/spire-server/private/api.sock

spire-server bundle set

创建或更新信任域的捆绑数据。此命令不能用于更改服务器信任域捆绑,只能用于其他信任域的捆绑。

命令 行动 默认
-id 要设置的捆绑包的信任域 SPIFFE ID。
-path 包含捆绑数据的文件在磁盘上的路径。如果未设置,则从标准输入读取数据。
-socketPath SPIRE 服务器 API 套接字的路径 /tmp/spire-server/private/api.sock
-format 要设置的捆绑包的格式。 pemspiffe pem

spire-server bundle delete

删除信任域的捆绑数据。该命令不能用于删除服务器信任域捆绑,只能删除其他信任域的捆绑。

命令 行动 默认
-id 要删除的捆绑包的信任域 SPIFFE ID。
-mode 以下之一: restrictdissociatedeleterestrict 如果捆绑包与注册条目关联(即联合),则防止该捆绑包被删除。 dissociate 允许删除捆绑包并从注册条目中删除关联。 delete 删除捆绑包以及关联的注册条目。 restrict
-socketPath SPIRE 服务器 API 套接字的路径 /tmp/spire-server/private/api.sock

spire-server federation create

创建与外部信任域的动态联合关系。

命令 行动 默认
-bundleEndpointProfile 端点配置文件类型。 https_webhttps_spiffe
-bundleEndpointURL 提供信任捆绑包的 SPIFFE 捆绑包端点的 URL(必须使用 HTTPS 协议)。
-data 包含 JSON 格式的联合关系的文件的路径(可选,如果指定,则必须省略与联合关系信息相关的其他标志)。如果设置为“-”,则从 stdin 读取 JSON。
-endpointSpiffeID SPIFFE 捆绑端点服务器的 SPIFFE ID。仅用于 https_spiffe 配置文件。
-socketPath SPIRE 服务器 API 套接字的路径。 /tmp/spire-server/private/api.sock
-trustDomain 要联合的信任域的名称(例如 example.org)
-trustDomainBundleFormat 捆绑数据的格式(可选)。 pemspiffe pem
-trustDomainBundlePath 信任域捆绑数据的路径(可选)。

spire-server federation delete

删除动态联合关系。

命令 行动 默认
-id 关系的信任域的 SPIFFE ID。
-socketPath SPIRE 服务器 API 套接字的路径。 /tmp/spire-server/private/api.sock

spire-server federation list

列出所有动态联合关系。

命令 行动 默认
-id 关系信任域的 SPIFFE ID
-socketPath SPIRE 服务器 API 套接字的路径。 /tmp/spire-server/private/api.sock

spire-server federation refresh

从指定的联合信任域刷新捆绑包。

命令 行动 默认
-id 关系信任域的 SPIFFE ID
-socketPath SPIRE 服务器 API 套接字的路径。 /tmp/spire-server/private/api.sock

spire-server federation show

显示动态的联邦关系。

命令 行动 默认
-socketPath SPIRE 服务器 API 套接字的路径。 /tmp/spire-server/private/api.sock
-trustDomain 要显示的联合关系的信任域名(例如 example.org)

spire-server federation update

更新与外部信任域的动态联合关系。

命令 行动 默认
-bundleEndpointProfile 端点配置文件类型。 https_webhttps_spiffe
-bundleEndpointURL 提供信任捆绑包的 SPIFFE 捆绑包端点的 URL(必须使用 HTTPS 协议)。
-data 包含 JSON 格式的联合关系的文件的路径(可选,如果指定,则必须省略与联合关系信息相关的其他标志)。如果设置为“-”,则从 stdin 读取 JSON。
-endpointSpiffeID SPIFFE 捆绑端点服务器的 SPIFFE ID。仅用于 https_spiffe 配置文件。
-socketPath SPIRE 服务器 API 套接字的路径。 /tmp/spire-server/private/api.sock
-trustDomain 要联合的信任域的名称(例如 example.org)
-trustDomainBundleFormat 捆绑数据的格式(可选)。 pemspiffe pem
-trustDomainBundlePath 信任域捆绑数据的路径(可选)。

spire-server agent ban

根据 spiffeID 禁止已证明的节点。被禁止的证明节点无法重新证明。

命令 行动 默认
-socketPath SPIRE 服务器 API 套接字的路径 /tmp/spire-server/private/api.sock
-spiffeID 要禁止的代理的 SPIFFE ID(代理身份)

spire-server agent count

显示已证明的节点总数。

命令 行动 默认
-socketPath SPIRE 服务器 API 套接字的路径 /tmp/spire-server/private/api.sock

spire-server agent evict

在给定 spiffeID 的情况下取消对已认证节点的认证。

命令 行动 默认
-socketPath SPIRE 服务器 API 套接字的路径 /tmp/spire-server/private/api.sock
-spiffeID 要驱逐的代理的 SPIFFE ID(代理身份)

spire-server agent list

显示已证明的节点。

命令 行动 默认
-socketPath SPIRE 服务器 API 套接字的路径 /tmp/spire-server/private/api.sock

spire-server agent show

显示给定 spiffeID 的已证明节点的详细信息(包括节点选择器)。

命令 行动 默认
-socketPath SPIRE 服务器 API 套接字的路径 /tmp/spire-server/private/api.sock
-spiffeID 要显示的代理的 SPIFFE ID(代理身份)

spire-server healthcheck

检查 SPIRE 服务器的健康状况。

命令 行动 默认
-shallow 执行不太严格的健康检查
-socketPath SPIRE 服务器 API 套接字的路径 /tmp/spire-server/private/api.sock
-verbose 打印详细信息

spire-server validate

验证 SPIRE 服务器配置文件。参数与 spire-server run 相同。通常,你可能至少需要:

命令 行动 默认
-config SPIRE 服务器配置文件的路径 服务器配置文件
-expandEnv 展开配置文件中的环境 $VARIABLES 错误的

spire-server x509 mint

铸造 X509-SVID。

命令 行动 默认
-dns 将包含在 SVID 中的 DNS 名称。可以多次使用
-socketPath SPIRE 服务器 API 套接字的路径 /tmp/spire-server/private/api.sock
-spiffeID X509-SVID 的 SPIFFE ID
-ttl X509-SVID 的 TTL Entry.x509_svid_ttlEntry.ttldefault_x509_svid_ttl1h 中的第一个非零值
-write 将输出写入而不是 stdout 的目录

spire-server jwt mint

铸造 JWT-SVID。

命令 行动 默认
-audience 观众声称将包含在 SVID 中。可以多次使用
-socketPath SPIRE 服务器 API 套接字的路径 /tmp/spire-server/private/api.sock
-spiffeID JWT-SVID 的 SPIFFE ID
-ttl JWT-SVID 的 TTL Entry.jwt_svid_ttlEntry.ttldefault_jwt_svid_ttl5m 中的第一个非零值
-write 要写入令牌而不是标准输出的文件

-data 的 JSON 对象

传递给 entry create/update-data 的 JSON 对象需要以下形式:

{
    "entries":[]
}

入口对象在公共 protobuf 文件中由 RegistrationEntry 描述。

注意:要创建节点条目,请将 parent_id 设置为特殊值 spiffe://<your-trust-domain>/spire/server 。这就是在 cli 上传递 -node 标志时代码所做的事情。

配置文件示例

本节包括用于格式化和语法参考的示例配置文件

server {
    trust_domain = "example.org"

    bind_address = "0.0.0.0"
    bind_port = "8081"
    log_level = "INFO"
    data_dir = "/opt/spire/.data/"
    default_x509_svid_ttl = "6h"
    default_jwt_svid_ttl = "5m"
    ca_ttl = "72h"
    ca_subject {
        country = ["US"]
        organization = ["SPIRE"]
        common_name = ""
    }
}

telemetry {
    Prometheus {
        port = 1234
    }
}

plugins {
    DataStore "sql" {
        plugin_data {
            database_type = "sqlite3"
            connection_string = "/opt/spire/.data/datastore.sqlite3"
        }
    }
    NodeAttestor "join_token" {
        plugin_data {}
    }
    KeyManager "disk" {
        plugin_data {
            keys_path = "/opt/spire/.data/keys.json"
        }
    }
}

最后更新于 2024/12/12