dominusceo

OCI Audit Events REST API example

May 22nd, 2025 (edited)
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.90 KB | Cybersecurity | 0 0
  1. #!/bin/bash
  2. # Variables que debes modificar con tus datos
  3. # Author: Ricardo Carrillo [email protected]
  4. TENANCY_OCID="ocid1.tenancy.oc1..xxxxxxxxxxxxxxxx"
  5. USER_OCID="ocid1.user.oc1..aaaaaaaaoh6vmzkzfnd5cuskxnmllluvysotcs57cwc2upn2733ftemidxha"
  6. FINGERPRINT="XX:XX:a1:e5:0a:XX:XX:c6:4c:ff:XX:52:XX:87:7f:67"
  7. PRIVATE_KEY_PATH="$HOME/.oci/oci-api.key"
  8. REGION="us-sanjose-1"
  9. # Definiendo el periodo de 3 meses, desde la fecha actual, hacia 3 meses atras.
  10. FILE1="audit-events.json"
  11. NOW=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
  12. BEF=$(date -u --date="3 months ago" +"%Y-%m-%dT%H:%M:%SZ")
  13. # Definiendo el metodo http
  14. METHOD="GET"
  15. # Definiendo el REST API
  16. URL="https://audit.${REGION}.oraclecloud.com/20190901/auditEvents?compartmentId=${TENANCY_OCID}&startTime=${BEF}&endTime=$NOW"
  17. # Extraer host y path con query de la URL
  18. HOST=$(echo $URL | awk -F/ '{print $3}')
  19. PATH_QUERY=$(echo "$URL" | sed -e "s#https\?://$HOST##")
  20.  
  21. # Crear la cabecera Date en formato RFC 7231 (UTC)
  22. DATE=$(LC_ALL=C date -u +"%a, %d %b %Y %H:%M:%S GMT")
  23.  
  24. # Construir string para firmar
  25. SIGNING_STRING="(request-target): ${METHOD,,} $PATH_QUERY
  26. date: $DATE
  27. host: $HOST"
  28.  
  29. # Firmar el string con RSA-SHA256 y convertiro a base64
  30. SIGNATURE=$(printf '%s' "$SIGNING_STRING" | openssl dgst -sha256 -sign "$PRIVATE_KEY_PATH" | base64 | tr -d '\n')
  31.  
  32. # Construir header Authorization
  33. KEY_ID="$TENANCY_OCID/$USER_OCID/$FINGERPRINT"
  34. AUTH_HEADER="Signature version=\"1\",keyId=\"$KEY_ID\",algorithm=\"rsa-sha256\",headers=\"(request-target) date host\",signature=\"$SIGNATURE\""
  35. echo "Authorization: Signature version=\"1\",keyId=\"$KEY_ID\",algorithm=\"rsa-sha256\",headers=\"(request-target) date host\",signature=\"$SIGNATURE\""
  36.  
  37. # Ejecutar curl con headers
  38. echo curl --location "$URL" \
  39.    --header "Date: $DATE" \
  40.    --header "Host: $HOST" \
  41.    --header "Authorization: $AUTH_HEADER" \
  42.    --header "Content-Type: application/json" | tee $FILE1
Add Comment
Please, Sign In to add comment