Prisma Cloud : Erreur d’exception d’API pour l’exécution d’une requête de configuration IAM
3027
Created On 04/24/24 18:53 PM - Last Modified 05/07/24 13:55 PM
Symptom
Réception d’un message d’erreur lors de la tentative d’utilisation de l’API pour publier une requête de configuration IAM (RQL) de recherche.
Environment
- Politique IAM de Prisma Cloud
- Point de terminaison API
Cause
- Prisma Cloud utilise des points de terminaison d’API différents pour la requête Cloud-Resource et pour la requête de configuration IAM.
Resolution
- Pour la requête cloud.resource, le point de terminaison de l’API sera,
{{api-endpoint}}/search/config
- Mais pour la requête de configuration IAM, le point de terminaison de l’API sera,
{{api-endpoint}}/iam/api/v4/search/permission
Additional Information
- Le lien suivant ne couvre pas les détails de la requête RQL de configuration IAM.
« Perform Config Search"
https://pan.dev/prisma-cloud/api/cspm/search-config/
Exemples d’appels d’API à l’aide de Postman :
- RQLu2019
POST: https://{{api-endpoint}}/search/config
Body:
{
"heuristicSearch": true,
"query": "config from cloud.resource where cloud.type = 'aws' AND api.name = 'aws-s3api-get-bucket-acl' AND json.rule = "acl.grantsAsList[?(@.grantee=='AllUsers')].permission contains ReadAcp or acl.grantsAsList[?(@.grantee=='AllUsers')].permission contains FullControl",
"timeRange": {
"type": "to_now",
"value": "epoch"
},
"limit": 100,
"withResourceJson": false
}
- Configuration IAM RQL
POST: https://{{api-endpoint}}/iam/api/v4/search/permission
Body:
{
"query": "config from iam where dest.cloud.type = 'AWS' and source.public = true AND dest.cloud.service.name = 's3' AND dest.cloud.resource.type = 'bucket' AND grantedby.cloud.policy.condition ( 'aws:SourceArn' ) does not exist AND grantedby.cloud.policy.condition ( 'aws:VpcSourceIp' ) does not exist AND grantedby.cloud.policy.condition ( 'aws:username' ) does not exist AND grantedby.cloud.policy.condition ( 'aws:userid' ) does not exist AND grantedby.cloud.policy.condition ( 'aws:ResourceAccount' ) does not exist"
}