我在通过Pal Alto Prisma Cloud API向现有策略添加合规性标准时遇到问题。
每次我发送请求时,都会返回一个500Server错误(不幸的是,API文档对此毫无帮助)。我不确定我是否发送了正确的信息来添加合规性标准,因为API文档没有显示需要发送的信息。如果我遗漏了必填字段(name、policyType和severity),我将返回一个400错误(错误的请求,这是有意义的)。但是我不明白为什么我一直收到500服务器错误。
从本质上讲,我的代码如下所示:
import requests
url = https://api2.redlock.io/policy/{policy_id}
header = {'Content-Type': 'application/json', 'x-redlock-auth': 'token'}
payload = {
'name': 'policy_name',
'policyType': 'policy_type',
'severity': 'policy_severity',
'complianceMetadata': [
{
'standardName': 'standard_name',
'requirementId': 'requirement_ID',
'sectionId': 'section_id'
}
]
}
response = requests.request('PUT', url, json=payload, header=header)响应应该是200,并且策略的元数据以符合新的合规性标准的JSON格式返回。
发布于 2019-05-30 10:33:40
对于那些使用RedLock应用程序接口的人,我设法弄清楚了。
虽然不是描述性的,但500错误通常意味着发送到服务器的JSON是不正确的。在这种情况下,有效负载是错误的。
用于更新策略的合规性标准的正确JSON为:
req_header = {'Content-Type':'application/json','x-redlock-auth':jwt_token}
# This is a small function to get a policy by ID
policy = get_redlock_policy_by_ID(req_header, 'policy_ID')
new_standard = {
"standardName":"std-name",
"requirementId":"1.1",
"sectionId":"1.1.1",
"customAssigned":true,
"complianceId":"comp-id",
"requirementName":"req-name"
}
policy['complianceMetadata'].append(new_standard)
requests.put('{}/policy/{}'.format(REDLOCK_API_URL, policy['policyId']), json=policy, headers=req_header)https://stackoverflow.com/questions/56177927
复制相似问题