Fortinet GitHub

Published
Length
3 min read

Luis Felipe Dias

All posts

You set up fortinet github workflows by storing firewall rules as code in version control. Then you use automated runners to push updates to your network devices. Engineering teams often use this setup to track network changes alongside app code. Still, teams often grant broad admin tokens to their build servers for convenience. If a bad actor steals that token, they can rewrite core network rules. How fortinet github workflows run in practice In a standard fortinet github setup, engineers wr

GitHub Actions Security: the complete guide

Architecture patterns, implementation strategies, and security best practices. Delivered to your inbox.

Free white paper. No spam. Unsubscribe anytime.

You set up fortinet github workflows by storing firewall rules as code in version control. Then you use automated runners to push updates to your network devices. Engineering teams often use this setup to track network changes alongside app code. Still, teams often grant broad admin tokens to their build servers for convenience. If a bad actor steals that token, they can rewrite core network rules.

How fortinet github workflows run in practice

In a standard fortinet github setup, engineers write firewall rules in text files. They save these files in a central code repo. When an engineer wants to open a port, they open a pull request. Other team members check the proposed change and leave comments. Once approved, the team merges the change into the main branch.

That merge triggers an automated job on a build runner. The runner reads the updated text files and talks to the firewall API. To do this, the runner needs a valid secret key stored in the repo. It uses this key to log in to the network device. The runner then sends the new rules to the firewall over the network.

Teams also use public code repos from the vendor to find sample scripts. These scripts help engineers automate common tasks like address updates and rule backups. By using version control, the team gets a clear history of who changed each file. If a change breaks network traffic, they revert the commit and run the job again.

What native repo permissions solve and where they fall short

Native repo settings help you control who can edit code and merge changes. You can require two reviews before anyone merges a change to the main branch. You can also limit which branches are allowed to read stored secret keys. These controls stop random users from pushing bad rules straight to your network.

Still, repo permissions only check who merges the file before the job starts. Once the build runner grabs the secret key, the repo has no more control. The firewall sees a valid admin key and trusts every command in that session. It cannot tell if a human approved a safe update or a risky command.

GitHub Actions Security: architecture patterns and best practices

Continue reading? Get the full guide.

Free. No spam. Unsubscribe anytime.

Static keys stored in build tools also create a major blind spot for teams. Engineers often copy these keys to local machines to test scripts faster. When multiple people and scripts share one role, your device logs lose clear detail. You see that the shared role ran a command, not which person wrote it. Native tools decide who logs in, not what individual commands do in flight.

Managing secret keys and runner roles safely

To reduce risk, teams must shrink the power of their automated build keys. Start by creating a separate role on the firewall just for your build runner. Only give this role read and write rights for the exact zones it manages. Never use a full super admin key for basic daily rule updates.

Next, place your build runners inside a private network segment that you control. Public runners require you to open your firewall management port to the internet. A private runner lets you keep management ports closed to outside traffic. You should also rotate your stored API keys on a regular schedule. Even with these steps, teams still need visibility into every live command and query.

Add runtime guardrails and masking beside your databases and APIs

Login rules, role grants, and CI checks govern who connects to your stack. Yet any allowed script, engineer, or AI agent still runs commands with the full scope of its role. For workloads on Postgres, MySQL, SQL Server, MongoDB, ClickHouse, Kubernetes, SSH, or internal HTTP services, hoop.dev sits beside the service as an open-source proxy, a sidecar for your database or API.

Before a query runs, hoop.dev guardrails check the statement against your rules. An AI Analyzer you configure can score intent or hold risky calls for human review. Next, hoop.dev data masking rewrites sensitive fields in responses, and each verdict is logged per listener. Explore the MIT-licensed project on GitHub.

Frequently asked questions

How do we connect a build runner to a private firewall?

Run a self-hosted runner inside your private network near the firewall management interface. This lets the runner send API calls locally without opening public management ports.

Why are static firewall API keys risky in code repos?

Static keys do not expire on their own and often hold broad admin rights. If a script leaks the key in a build log, anyone can use it.

Can branch rules stop bad network commands from running?

Branch rules only require human review before a file merge happens in the repo. They do not inspect or block live API calls once the runner starts working.

Save the open-source gateway.

hoop is MIT-licensed infrastructure for controlling how AI agents reach production data. Star hoophq/hoop so you can inspect it, deploy it, or share it when your team starts governing agent access.