无代理扫描将私有镜像 (AMI) 识别为需要 EULA 以及其他市场镜像的市场镜像。
3035
Created On 06/09/24 23:17 PM - Last Modified 08/14/24 01:42 AM
Symptom
- 无代理扫描将一些 AMI 识别为需要订阅的市场映像。
- 这将使扫描程序无法部署,并且控制台会记录以下消息:
ERRO 2024-06-16T20:50:17.260 types.go:590 (agentless/orchestrator.go:2211) Failed to deploy scanner: failed to deploy scanner ---snip : subscription required OptInRequired: In order to use this AWS Marketplace product you need to accept terms and subscribe. To do so please visit https://aws.amazon.com/marketplace/pp?sku=1o0kp4lye72fbgbb39noij1xu status code: 401, request id: e19ff056-c8f1-2d12-9217-772eb47eb293. Skipping instances: [<instance-ids> <instance-ids> <instance-ids>] target="<target-account-id>" hub="<hub-account-id>" region="ap-southeast-2" availabilityDomain="" job="Scan" workerID="z5fd2351-6123-4424-9127-cd12345d12d6"
Environment
- 普里斯马云
- AWS公司
- 无代理扫描
Cause
- 当扫描列表中的某个 AMI 需要订阅时,无法部署 Prisma Cloud Scanner。 这会导致对不需要订阅的其他 AMI 的扫描也失败,因为扫描程序本身无法启动。
- 如果 AMI 需要订阅 (付费或接受 EULA),则该账户需要先完成市场订阅过程,然后才能从该 AMI 启动实例。 如果没有必要的订阅,实例将被阻止运行。
- 在当前架构下,只有在云账户中启动 Prisma Cloud Scanner 时,才会检测到此类 AWS Marketplace 问题。 在单个扫描程序实例中扫描多个实例,由于订阅问题导致的扫描程序部署失败会影响扫描列表中的所有实例,包括不需要订阅的实例。
- 在扫描 Hub 帐户时通常会注意到此问题。 无代理扫描是通过中心账户执行的,其中市场 AMI 的 EULA/订阅(针对其他账户的 AMI)尚未在 Hub 账户中被接受。 当扫描程序尝试扫描多个实例时,如果扫描程序列表中的任何主机(使用市场 AMI)需要订阅,则扫描程序将失败。 这会导致所有主机(包括不需要订阅的主机)被报告为需要 EULA。
Resolution
- 为了解决此问题,建议的方法是确保用于无代理扫描的中心账户具有扫描列表中的任何市场 AMI 所接受的必需 EULA/订阅。 这将使扫描程序能够成功部署并扫描所有实例,包括使用私有 AMI 的实例。
- 订阅链接打印在控制台日志中:
ERRO 2024-06-16T20:50:17.260 types.go:590 (agentless/orchestrator.go:2211) Failed to deploy scanner: failed to deploy scanner ---snip : subscription required OptInRequired: In order to use this AWS Marketplace product you need to accept terms and subscribe. To do so please visit >>>>>>https://aws.amazon.com/marketplace/pp?sku=1o0kp4lye72fbgbb39noij1xu. <<<<<<<<<<< status code: 401, request id: e19ff056-c8f1-2d12-9217-772eb47eb293. Skipping instances: [<instance-ids> <instance-ids> <instance-ids>] target="<target-account-id>" hub="<hub-account-id>" region="ap-southeast-2" availabilityDomain="" job="Scan" workerID="z5fd2351-6123-4424-9127-cd12345d12d6"
- 如果不接受 EULA,将导致扫描程序失败。 这会导致所有主机(包括不需要订阅的主机)被报告为需要 EULA。
解决方法:
如果无法接受特定 AMI 的 EULA,则可以使用排除标签从无代理扫描过程中排除这些不受支持的 AMI。
- 处理此问题的步骤如下:
- 确定具有无法接受的 EULA 要求的 AMI。
- 向这些特定 AMI 添加标签。
- 配置无代理扫描以排除具有特定排除标签的 AMI。
- 这样,无代理扫描将不会尝试选取和扫描那些具有此类订阅限制的市场 AMI,从而避免在扫描过程中出现任何失败或错误。
Additional Information
AWS AMI (Amazon Machine Image) 何时需要市场订阅?
- 如果满足以下条件,则 AWS AMI 需要市场订阅:
- 来自 AWS Marketplace 的预配置 AMI:要使用已通过 AWS Marketplace 预配置并提供的 AMI,账户需要订阅该 AMI 的市场列表。 这赋予了账户使用 AMI 中包含的软件或服务的权利。
- 从其他 AWS 账户共享的私有 AMI:如果另一个 AWS 账户所有者与您共享了私有 AMI,并且该 AMI 包含需要市场订阅的软件或服务,则您需要先订阅相关的市场列表,然后才能从该 AMI 启动实例。
- 具有付费软件的社区 AMI:AWS Marketplace 中提供的一些社区 AMI 包含需要付费订阅的软件。 在这种情况下,您需要先订阅市场列表,然后才能从该 AMI 启动实例。
- 一般而言,如果您要使用的 AMI 包含任何需要订阅的软件或服务,则需要先完成市场订阅过程,然后才能从该 AMI 启动实例。 市场订阅授予您必要的使用权利和权限。
- 如果您要使用的 AMI 不包含任何需要市场订阅的软件或服务,则您无需订阅任何市场列表即可使用该 AMI。
为什么这在 Hub 帐户扫描中很常见?
- 在无代理扫描场景中,扫描是在正在运行的实例及其关联的 Amazon 系统映像 (AMI) 上执行的。 如果实例已在运行,则意味着用于启动实例的账户具有使用该 AMI 所需的市场订阅。
- 因此,在扫描拥有 AMI 的同一账户内的实例时,无代理扫描应该会成功,因为订阅要求已经满足,并且 AMI 已经在运行
- 但是,在通过中心账户执行扫描的情况下,扫描程序将通过在中心账户上运行目标 AMI 来部署。 由于该 AMI 的市场订阅与不同的账户关联,而不是与中心账户关联,因此尝试在中心账户上运行 AMI 将失败,并且扫描将返回一条错误消息,指示缺少订阅。