APM 代理密钥 API
编辑APM 代理密钥 API
编辑APM 代理密钥 API 允许您配置 APM 代理密钥,以授权来自 APM 代理对 APM 服务器的请求。
以下 APM 代理密钥 API 可用
- 创建代理密钥 用于创建 APM 代理密钥
展开以查看所需的标头、权限和使用详情
使用 cURL 或其他 API 工具与 APM API 交互。所有 APM API 都是 Kibana API,而不是 Elasticsearch API;因此,不能使用 Kibana 开发工具控制台与 APM API 交互。
对于所有 APM API,您必须使用请求标头。支持的标头为 Authorization
、kbn-xsrf
和 Content-Type
。
-
Authorization: ApiKey {凭证}
-
Kibana 支持使用 Elasticsearch API 密钥服务进行基于令牌的身份验证。通过 Elasticsearch 创建 API 密钥 API 返回的 API 密钥可以通过发送具有
Authorization
标头的请求来使用,该标头的值为ApiKey
,后跟{凭证}
,其中{凭证}
是id
和api_key
的 base64 编码,两者以冒号连接。或者,您可以创建一个用户,并使用他们的用户名和密码来验证 API 访问:
-u $USER:$PASSWORD
。无论是使用
Authorization: ApiKey {凭证}
还是-u $USER:$PASSWORD
,与 APM API 交互的用户都必须具有足够的权限。 -
kbn-xsrf: true
-
默认情况下,您必须对所有 API 调用使用
kbn-xsrf
,以下情况除外- API 端点使用
GET
或HEAD
操作 - 使用
server.xsrf.allowlist
设置允许该路径 - 使用
server.xsrf.disableProtection
设置禁用 XSRF 保护
- API 端点使用
-
Content-Type: application/json
- 仅当您在 API 请求中发送有效负载时适用。Kibana API 请求和响应使用 JSON。通常,如果您包含
kbn-xsrf
标头,则还必须包含Content-Type
标头。
创建代理密钥
编辑创建 APM 代理 API 密钥。在创建时,于请求正文中指定 API 密钥权限。
创建 APM 代理 API 密钥的用户必须至少具有 manage_own_api_key
集群权限以及它希望授予的 APM 应用程序级权限。
下面的示例使用 Kibana 角色管理 API 创建一个名为 apm_agent_key_user
的角色。创建并将此角色分配给希望创建 APM 代理 API 密钥的用户。
POST /_security/role/apm_agent_key_user { "cluster": ["manage_own_api_key"], "applications": [ { "application": "kibana-.kibana", "privileges": ["feature_apm.all"], "resources": ["*"] }, { "application": "apm", "privileges": ["event:write", "config_agent:read"], "resources": ["*"] } ] }
POST /api/apm/agent_keys
-
name
- (必需,字符串)APM 代理密钥的名称。
-
privileges
-
(必需,数组)APM 代理密钥权限。它可以采用以下一个或多个值
-
event:write
。用于摄取 APM 代理事件所必需。 -
config_agent:read
。供 APM 代理远程读取代理配置所必需。
-
POST /api/apm/agent_keys { "name": "apm-key", "privileges": ["event:write", "config_agent:read"] }
{ "agentKey": { "id": "3DCLmn0B3ZMhLUa7WBG9", "name": "apm-key", "api_key": "PjGloCGOTzaZr8ilUPvkjA", "encoded": "M0RDTG1uMEIzWk1oTFVhN1dCRzk6UGpHbG9DR09UemFacjhpbFVQdmtqQQ==" } }
创建后,您可以复制 API 密钥(Base64 编码)并使用它来授权来自 APM 代理对 APM 服务器的请求。