<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
<url>
<loc>https://riowiraldhani.my.id/</loc>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog</loc>
</url>
<url>
<loc>https://riowiraldhani.my.id/contact</loc>
</url>
<url>
<loc>https://riowiraldhani.my.id/experience</loc>
</url>
<url>
<loc>https://riowiraldhani.my.id/notes</loc>
</url>
<url>
<loc>https://riowiraldhani.my.id/projects</loc>
</url>
<url>
<loc>https://riowiraldhani.my.id/talks</loc>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/page/2</loc>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/page/3</loc>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/page/4</loc>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/page/5</loc>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/page/6</loc>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/syft-grype-github-actions-cve-scanning</loc>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/how-to-scan-dependency-cves-early-with-syft-grype-in-github-actions/a6e7f4d421b2.jpeg</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/how-to-scan-dependency-cves-early-with-syft-grype-in-github-actions/e38e2f8b1bbd.png</image:loc>
</image:image>
<lastmod>2026-07-18T04:28:13.365Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/ansible-series</loc>
<lastmod>2026-07-03T12:00:00.000Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-11-zeek-network-telemetry-into-wazuh</loc>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-11-zeek-network-telemetry-into-wazuh/d31413196ef2.jpeg</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-11-zeek-network-telemetry-into-wazuh/0652567fe6f0.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-11-zeek-network-telemetry-into-wazuh/456980c95e5c.png</image:loc>
</image:image>
<lastmod>2026-07-02T01:30:53.163Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-10-automating-wazuh-indexer-backups-to-google-cloud-storage</loc>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-10-automating-wazuh-indexer-backups-to-google-cloud-storage/787169e78e65.jpeg</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-10-automating-wazuh-indexer-backups-to-google-cloud-storage/b2636b854ceb.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-10-automating-wazuh-indexer-backups-to-google-cloud-storage/3df16fe0b297.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-10-automating-wazuh-indexer-backups-to-google-cloud-storage/96d8c4507636.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-10-automating-wazuh-indexer-backups-to-google-cloud-storage/82ac24b30bc8.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-10-automating-wazuh-indexer-backups-to-google-cloud-storage/9575048f8f51.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-10-automating-wazuh-indexer-backups-to-google-cloud-storage/6d93d98b9ca3.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-10-automating-wazuh-indexer-backups-to-google-cloud-storage/a07e63af0ba5.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-10-automating-wazuh-indexer-backups-to-google-cloud-storage/ff5025931d81.png</image:loc>
</image:image>
<lastmod>2026-06-24T22:56:41.651Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-9-custom-malware-detection-with-yara-scheduled-scanning</loc>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-9-custom-malware-detection-with-yara-scheduled-scanning/6284e771a922.jpeg</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-9-custom-malware-detection-with-yara-scheduled-scanning/e33a3352c6d8.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-9-custom-malware-detection-with-yara-scheduled-scanning/6c74dab1af6f.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-9-custom-malware-detection-with-yara-scheduled-scanning/bc0960a057fd.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-9-custom-malware-detection-with-yara-scheduled-scanning/1e05c5267abe.png</image:loc>
</image:image>
<lastmod>2026-06-23T16:00:19.771Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-8-scheduled-malware-scanning-with-clamav-wazuh</loc>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-8-scheduled-malware-scanning-with-clamav-wazuh/bc0304e060c6.jpeg</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-8-scheduled-malware-scanning-with-clamav-wazuh/119ddcff5a14.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-8-scheduled-malware-scanning-with-clamav-wazuh/7df6fdd51c79.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-8-scheduled-malware-scanning-with-clamav-wazuh/47a2291b16f8.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-8-scheduled-malware-scanning-with-clamav-wazuh/c6a80e6f3a00.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-8-scheduled-malware-scanning-with-clamav-wazuh/df12f5e05f9f.png</image:loc>
</image:image>
<lastmod>2026-06-21T11:53:53.284Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-7-real-time-malware-blocking-with-clamav-on-access</loc>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-7-real-time-malware-blocking-with-clamav-on-access/37a0fa40c104.jpeg</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-7-real-time-malware-blocking-with-clamav-on-access/836852f561f5.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-7-real-time-malware-blocking-with-clamav-on-access/2dc41233abe1.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-7-real-time-malware-blocking-with-clamav-on-access/6f3245f85965.png</image:loc>
</image:image>
<lastmod>2026-06-20T12:12:03.350Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-6-building-centralized-clamav-database-mirror-with-ansible</loc>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-6-building-centralized-clamav-database-mirror-with-ansible/04734635c8f6.jpeg</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-6-building-centralized-clamav-database-mirror-with-ansible/c85006f12a7f.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-6-building-centralized-clamav-database-mirror-with-ansible/417b3d0d294b.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-6-building-centralized-clamav-database-mirror-with-ansible/0d78a1ba7697.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-6-building-centralized-clamav-database-mirror-with-ansible/5a69e2f45b97.png</image:loc>
</image:image>
<lastmod>2026-06-19T05:54:23.169Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-5-custom-rules-for-alert-suppression-that-actually-work</loc>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-5-custom-rules-for-alert-suppression-that-actually-work/335293a61bcf.jpeg</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-5-custom-rules-for-alert-suppression-that-actually-work/5572e19f0a51.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-5-custom-rules-for-alert-suppression-that-actually-work/23e92c008106.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-5-custom-rules-for-alert-suppression-that-actually-work/2aacdd531332.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-5-custom-rules-for-alert-suppression-that-actually-work/9e55db1fd758.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-5-custom-rules-for-alert-suppression-that-actually-work/d8c3745cb4da.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-5-custom-rules-for-alert-suppression-that-actually-work/5572e19f0a51.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-5-custom-rules-for-alert-suppression-that-actually-work/4a1daabc6f19.png</image:loc>
</image:image>
<lastmod>2026-06-17T14:56:25.706Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-4-managing-wazuh-agent-configuration-profiles-with-ansible</loc>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-4-managing-wazuh-agent-configuration-profiles-with-ansible/673241b163bc.jpeg</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-4-managing-wazuh-agent-configuration-profiles-with-ansible/0db57dd60e81.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-4-managing-wazuh-agent-configuration-profiles-with-ansible/ce07e5505237.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-4-managing-wazuh-agent-configuration-profiles-with-ansible/650ad76e16cb.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-4-managing-wazuh-agent-configuration-profiles-with-ansible/6dddf18735ab.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-4-managing-wazuh-agent-configuration-profiles-with-ansible/95ea82e7aa6b.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-4-managing-wazuh-agent-configuration-profiles-with-ansible/ce07e5505237.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-4-managing-wazuh-agent-configuration-profiles-with-ansible/b893927e0d67.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-4-managing-wazuh-agent-configuration-profiles-with-ansible/44051070ee8f.png</image:loc>
</image:image>
<lastmod>2026-06-16T13:37:34.220Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-3-managing-wazuh-manager-configuration-with-ansible</loc>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-3-managing-wazuh-manager-configuration-with-ansible/c37c85f099d8.jpeg</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-3-managing-wazuh-manager-configuration-with-ansible/69eb0089633e.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-3-managing-wazuh-manager-configuration-with-ansible/5455e0a7f75a.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-3-managing-wazuh-manager-configuration-with-ansible/28e08307974c.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-3-managing-wazuh-manager-configuration-with-ansible/b86ed5e1e073.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-3-managing-wazuh-manager-configuration-with-ansible/9dbec52526f7.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-3-managing-wazuh-manager-configuration-with-ansible/1a12822c79b4.png</image:loc>
</image:image>
<lastmod>2026-06-15T17:03:09.881Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-2-integrating-wazuh-saml-authentication-with-keycloak</loc>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-2-integrating-wazuh-saml-authentication-with-keycloak/3f531dabd199.jpeg</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-2-integrating-wazuh-saml-authentication-with-keycloak/3ec044d80f61.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-2-integrating-wazuh-saml-authentication-with-keycloak/5d67de114b5d.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-2-integrating-wazuh-saml-authentication-with-keycloak/661ef132d33f.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-2-integrating-wazuh-saml-authentication-with-keycloak/7f300e74e9ad.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-2-integrating-wazuh-saml-authentication-with-keycloak/b874c717fd90.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-2-integrating-wazuh-saml-authentication-with-keycloak/be55f84bd4fb.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-2-integrating-wazuh-saml-authentication-with-keycloak/4ec1c0d36720.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-2-integrating-wazuh-saml-authentication-with-keycloak/29c086c2110d.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-2-integrating-wazuh-saml-authentication-with-keycloak/01014d354bd9.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-2-integrating-wazuh-saml-authentication-with-keycloak/dfff051af273.png</image:loc>
</image:image>
<lastmod>2026-06-14T17:27:50.049Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-1-how-to-deploy-wazuh-with-ansible</loc>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-1-how-to-deploy-wazuh-with-ansible/25376f44b19c.jpeg</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-1-how-to-deploy-wazuh-with-ansible/638a658de846.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-1-how-to-deploy-wazuh-with-ansible/dc2c0e6ae386.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-1-how-to-deploy-wazuh-with-ansible/181a216127b6.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-1-how-to-deploy-wazuh-with-ansible/95efa467cb62.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-1-how-to-deploy-wazuh-with-ansible/e1e19bc710b3.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/wazuh-ansible-series-part-1-how-to-deploy-wazuh-with-ansible/ac5437cdffd1.png</image:loc>
</image:image>
<lastmod>2026-06-14T16:49:39.885Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/monitoring-aws-egress-traffic-with-ec2-nat-suricata</loc>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/monitoring-aws-egress-traffic-with-ec2-nat-suricata/5f12d0e3c5ec.jpeg</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/monitoring-aws-egress-traffic-with-ec2-nat-suricata/10e49869a10e.png</image:loc>
</image:image>
<lastmod>2026-06-10T13:57:41.007Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/aws-ec2-nat-instance-cut-nat-gateway-costs-for-small-environments</loc>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-ec2-nat-instance-cut-nat-gateway-costs-for-small-environments/02fe191d2537.jpeg</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-ec2-nat-instance-cut-nat-gateway-costs-for-small-environments/955c55fcc977.png</image:loc>
</image:image>
<lastmod>2026-06-09T17:58:56.776Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/bamf-open-source-teleport-alternative-ssh-databases</loc>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/teleport-alternative-meet-bamf-open-source-jump-host-for-ssh-databases-compliance/b1ab3444819d.jpeg</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/teleport-alternative-meet-bamf-open-source-jump-host-for-ssh-databases-compliance/73d7af61b8df.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/teleport-alternative-meet-bamf-open-source-jump-host-for-ssh-databases-compliance/5f675f68281c.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/teleport-alternative-meet-bamf-open-source-jump-host-for-ssh-databases-compliance/c936d7862e47.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/teleport-alternative-meet-bamf-open-source-jump-host-for-ssh-databases-compliance/f8d2ac7009e3.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/teleport-alternative-meet-bamf-open-source-jump-host-for-ssh-databases-compliance/1c958acb45cd.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/teleport-alternative-meet-bamf-open-source-jump-host-for-ssh-databases-compliance/de4da430d4ad.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/teleport-alternative-meet-bamf-open-source-jump-host-for-ssh-databases-compliance/d50ce780c32e.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/teleport-alternative-meet-bamf-open-source-jump-host-for-ssh-databases-compliance/9462c43e01e7.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/teleport-alternative-meet-bamf-open-source-jump-host-for-ssh-databases-compliance/e925c05bdaef.png</image:loc>
</image:image>
<lastmod>2026-02-21T13:08:25.274Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/centralized-dast-pipeline-zap-nuclei-github-actions</loc>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/i-got-tired-of-rebuilding-dast-in-every-repo/fa5c4027a38b.jpeg</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/i-got-tired-of-rebuilding-dast-in-every-repo/6228bed1dc2b.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/i-got-tired-of-rebuilding-dast-in-every-repo/48aaee7ac992.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/i-got-tired-of-rebuilding-dast-in-every-repo/b59a659c7d2f.png</image:loc>
</image:image>
<lastmod>2026-02-02T02:20:56.830Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/keycloak-audit-logging-user-events-admin-actions</loc>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/how-i-built-keycloak-audit-logging-that-actually-works/1325db2fcb4b.jpeg</image:loc>
</image:image>
<lastmod>2026-01-11T17:51:44.384Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/kviklet-database-access-control-audited-sql</loc>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/kviklet-database-access-control-platform-that-actually-makes-sense/d64a784113c7.jpeg</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/kviklet-database-access-control-platform-that-actually-makes-sense/cb174c5c3a2a.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/kviklet-database-access-control-platform-that-actually-makes-sense/44f1d0270aa6.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/kviklet-database-access-control-platform-that-actually-makes-sense/7140f00ca53c.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/kviklet-database-access-control-platform-that-actually-makes-sense/5e3aa36e9ea2.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/kviklet-database-access-control-platform-that-actually-makes-sense/c38f2a25450a.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/kviklet-database-access-control-platform-that-actually-makes-sense/35e70a777513.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/kviklet-database-access-control-platform-that-actually-makes-sense/07f4db5839aa.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/kviklet-database-access-control-platform-that-actually-makes-sense/1c6b70d9ae6d.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/kviklet-database-access-control-platform-that-actually-makes-sense/5e25259f7d9e.png</image:loc>
</image:image>
<lastmod>2025-12-12T18:20:33.440Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/optimizing-kubernetes-autoscaling-with-keda-hpa-karpenter</loc>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/optimizing-kubernetes-autoscaling-with-keda-hpa-karpenter/47dfbcb5fdcc.jpeg</image:loc>
</image:image>
<lastmod>2025-05-19T04:54:30.903Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/installing-keda-on-kubernetes-with-helm-production-ready-setup</loc>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/installing-keda-on-kubernetes-with-helm-production-ready-setup/97d307cc988a.jpeg</image:loc>
</image:image>
<lastmod>2025-05-19T04:52:38.976Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/aws-rds-s3-etl-pipeline-jenkins</loc>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/automating-rds-to-s3-etl-pipelines-with-jenkins-build-scalable-aws-data-lake/f26e5f388cc9.jpeg</image:loc>
</image:image>
<lastmod>2025-05-16T12:16:18.034Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/protect-amazon-eks-applications-alb-aws-waf</loc>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-securing-eks-applications-using-alb-integration-with-aws-waf/b134035a2441.jpeg</image:loc>
</image:image>
<lastmod>2025-05-15T10:07:03.659Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/deploy-loki-amazon-eks-s3-storage</loc>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-set-up-scalable-loki-logging-on-eks-using-amazon-s3-for-storage/69aca8542d96.jpg</image:loc>
</image:image>
<lastmod>2025-05-14T03:16:23.274Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/apache-airflow-sso-keycloak</loc>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/how-to-implement-sso-for-apache-airflow-using-keycloak-for-secure-authentication/c1a508312358.jpeg</image:loc>
</image:image>
<lastmod>2025-05-11T04:52:41.999Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/deploy-keycloak-kubernetes-sso</loc>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/deploying-keycloak-for-enterprise-identity-management-on-kubernetes-complete-guide/a703af114357.jpeg</image:loc>
</image:image>
<lastmod>2025-05-11T04:51:07.086Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/aws-managed-prefix-lists-ip-allowlists-security-groups</loc>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-enhancing-aws-security-with-customer-managed-prefix-lists-for-dynamic-ip-whitelisting/95bbe2f1a5ce.jpeg</image:loc>
</image:image>
<lastmod>2025-05-11T04:21:48.469Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/amazon-eks-cluster-setup-managed-node-groups</loc>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-create-manage-cluster-kubernetes-using-eks/f4e8bd0c34c6.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-create-manage-cluster-kubernetes-using-eks/8edde29654df.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-create-manage-cluster-kubernetes-using-eks/1737a1b6ebdd.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-create-manage-cluster-kubernetes-using-eks/96b6288c7089.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-create-manage-cluster-kubernetes-using-eks/4c17742d76b3.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-create-manage-cluster-kubernetes-using-eks/9a5585c3424a.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-create-manage-cluster-kubernetes-using-eks/c166a491d76e.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-create-manage-cluster-kubernetes-using-eks/7506521a3abd.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-create-manage-cluster-kubernetes-using-eks/c9188cae52e1.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-create-manage-cluster-kubernetes-using-eks/923959246c93.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-create-manage-cluster-kubernetes-using-eks/ee8b5411707f.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-create-manage-cluster-kubernetes-using-eks/fdec9d7611c6.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-create-manage-cluster-kubernetes-using-eks/4297451e821a.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-create-manage-cluster-kubernetes-using-eks/6f15504c0381.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-create-manage-cluster-kubernetes-using-eks/1e70ac4c0c7f.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-create-manage-cluster-kubernetes-using-eks/8d36d7fa3ffa.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-create-manage-cluster-kubernetes-using-eks/a494523c17c0.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-create-manage-cluster-kubernetes-using-eks/f84cf4895f6c.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-create-manage-cluster-kubernetes-using-eks/3d5c18af8c19.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-create-manage-cluster-kubernetes-using-eks/0515c3800da3.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-create-manage-cluster-kubernetes-using-eks/1f15a55cb35f.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-create-manage-cluster-kubernetes-using-eks/5819320ca8e3.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-create-manage-cluster-kubernetes-using-eks/ba63e4c6779e.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-create-manage-cluster-kubernetes-using-eks/3cfb760a5e14.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/aws-create-manage-cluster-kubernetes-using-eks/47afee85c39e.png</image:loc>
</image:image>
<lastmod>2021-09-11T09:32:21.213Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/portainer-docker-container-management</loc>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/manage-container-with-portainer/6a85623b8391.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/manage-container-with-portainer/46bc62326432.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/manage-container-with-portainer/cb0ff0eb937b.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/manage-container-with-portainer/b72b0c7a7f00.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/manage-container-with-portainer/70b9a814809f.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/manage-container-with-portainer/59d4f27cb9e9.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/manage-container-with-portainer/424ff710addd.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/manage-container-with-portainer/fe51bc455bf8.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/manage-container-with-portainer/65d8944a3811.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/manage-container-with-portainer/52f95463906d.png</image:loc>
</image:image>
<lastmod>2021-01-04T14:12:15.139Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/import-existing-kubernetes-cluster-rancher</loc>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/playing-with-rancher-for-manage-existing-kubernetes-cluster/a0ac3312291d.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/playing-with-rancher-for-manage-existing-kubernetes-cluster/e51debd29b1f.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/playing-with-rancher-for-manage-existing-kubernetes-cluster/312d8ad7f713.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/playing-with-rancher-for-manage-existing-kubernetes-cluster/3e07e526c998.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/playing-with-rancher-for-manage-existing-kubernetes-cluster/e268b49ca769.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/playing-with-rancher-for-manage-existing-kubernetes-cluster/3fe2b9f70bc0.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/playing-with-rancher-for-manage-existing-kubernetes-cluster/99f85491660d.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/playing-with-rancher-for-manage-existing-kubernetes-cluster/ff0e8070c82f.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/playing-with-rancher-for-manage-existing-kubernetes-cluster/44c5465b6a24.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/playing-with-rancher-for-manage-existing-kubernetes-cluster/37a081726ecb.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/playing-with-rancher-for-manage-existing-kubernetes-cluster/122d7bd7d91d.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/playing-with-rancher-for-manage-existing-kubernetes-cluster/960b69ee282b.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/playing-with-rancher-for-manage-existing-kubernetes-cluster/ab6f75c528e8.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/playing-with-rancher-for-manage-existing-kubernetes-cluster/5f968c93b541.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/playing-with-rancher-for-manage-existing-kubernetes-cluster/93a34d7ddc28.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/playing-with-rancher-for-manage-existing-kubernetes-cluster/48b5b96d4bcb.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/playing-with-rancher-for-manage-existing-kubernetes-cluster/bc25455e5188.png</image:loc>
</image:image>
<image:image>
<image:loc>https://riowiraldhani.my.id/blog/playing-with-rancher-for-manage-existing-kubernetes-cluster/d1b41569b3c0.png</image:loc>
</image:image>
<lastmod>2020-12-10T06:47:05.339Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/blog/kubernetes-high-availability-cluster-kubeadm</loc>
<lastmod>2020-12-07T16:58:04.640Z</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/notes/compliance-evidence-logging-backup-designed-early</loc>
<lastmod>2026-08-08T12:00:00+07:00</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/notes/backup-exists-but-restore-was-never-tested</loc>
<lastmod>2026-08-08T12:00:00+07:00</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/notes/access-review-painful-when-iam-naming-not-standardized</loc>
<lastmod>2026-08-08T12:00:00+07:00</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/notes/gcp-service-account-key-creation-disabled-org-policy</loc>
<lastmod>2026-08-08T12:00:00+07:00</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/notes/wazuh-fim-file-limit-dont-raise-blindly</loc>
<lastmod>2026-08-08T12:00:00+07:00</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/notes/wazuh-custom-rule-not-triggering-real-log-samples</loc>
<lastmod>2026-08-08T12:00:00+07:00</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/notes/podmonitor-exists-but-prometheus-does-not-scrape</loc>
<lastmod>2026-08-08T12:00:00+07:00</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/notes/argocd-rollback-should-start-from-git</loc>
<lastmod>2026-08-08T12:00:00+07:00</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/notes/cloudflare-proxied-dns-vs-dns-only-origin-testing</loc>
<lastmod>2026-08-08T12:00:00+07:00</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/notes/cloudflare-waf-allowlist-scoped-to-hostname</loc>
<lastmod>2026-08-08T12:00:00+07:00</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/notes/ansible-first-found-environment-config</loc>
<lastmod>2026-08-08T12:00:00+07:00</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/notes/ansible-wrapper-roles-without-forking-upstream</loc>
<lastmod>2026-08-08T12:00:00+07:00</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/notes/clamav-eicar-test-not-triggering-clamd-cache</loc>
<lastmod>2026-08-08T12:00:00+07:00</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/notes/grafana-no-data-but-prometheus-has-metric</loc>
<lastmod>2026-08-08T12:00:00+07:00</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/notes/good-infra-work-boring-repeatable-easy-to-handover</loc>
<lastmod>2026-08-08T12:00:00+07:00</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/notes/kubernetes-crashloopbackoff-debugging</loc>
<lastmod>2026-08-08T14:00:00+07:00</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/notes/kubernetes-imagepullbackoff-private-registry</loc>
<lastmod>2026-08-08T14:05:00+07:00</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/notes/kubernetes-pod-pending-insufficient-cpu-memory</loc>
<lastmod>2026-08-08T14:10:00+07:00</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/notes/terraform-error-acquiring-state-lock</loc>
<lastmod>2026-08-08T14:15:00+07:00</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/notes/github-actions-oidc-aws-assumerolewithwebidentity-access-denied</loc>
<lastmod>2026-08-08T14:20:00+07:00</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/notes/argocd-application-outofsync-after-sync</loc>
<lastmod>2026-08-08T14:25:00+07:00</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/notes/cert-manager-certificate-ready-false</loc>
<lastmod>2026-08-08T14:30:00+07:00</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/notes/prometheus-target-down-context-deadline-exceeded</loc>
<lastmod>2026-08-08T14:35:00+07:00</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/notes/docker-no-space-left-on-device-safe-cleanup</loc>
<lastmod>2026-08-08T14:40:00+07:00</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/notes/sonarqube-quality-gate-failed-github-actions</loc>
<lastmod>2026-08-08T14:45:00+07:00</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/notes/aws-sso-profile-confusion</loc>
<lastmod>2026-08-08T10:24:34+07:00</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/projects/infrastructure-as-code-platform-terraform-terragrunt</loc>
<lastmod>2026-08-08T12:00:00+07:00</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/projects/security-dast-centralized-dynamic-application-security-testing</loc>
<lastmod>2026-08-01T01:15:59+07:00</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/projects/wazuh-compliance-operations-security-monitoring-for-audit-ready-environments</loc>
<lastmod>2026-08-01T01:15:59+07:00</lastmod>
</url>
<url>
<loc>https://riowiraldhani.my.id/projects/kubernetes-platform-engineering-eks-keda-karpenter</loc>
<lastmod>2026-08-08T12:00:00+07:00</lastmod>
</url>
</urlset>
