A technical challenge? Explore it and build a prototype.Explore the Lab

Autonomous software delivery · 4 min read

Limit a coding AI’s access to the work it needs to do

AI can build a software feature in a working copy using fictional records. Giving it credentials for live customer systems would allow much more. Its access needs to match the work you assigned.

Written by Ludovic ChennebergPublished Updated

DARKFACTORY · 06 / 08WORKED EXAMPLE

Give each stage the access it needs

The AI prepares a change in a working copy. Testing and publication use their own permissions.

DevelopmentEdit the working copyCode and fictional records
TestingRun the checksProposed version without customer access
ReleasePublish the approved versionLimited release authority
ExceptionApprove a specific needResource, action and expiry
Fictional example: adding a feature to a service-job application.

Imagine using AI to add a download feature to maintenance software. An operations manager wants the month’s completed jobs in Excel. The AI needs to change the code producing a CSV file, a spreadsheet-compatible data format, and try the result.

For this job, the team can provide an application copy and fictional service records. The AI does not need to inspect real customer companies’ files. It also does not need to publish the change to the software they use.

This separation limits the effects of a wrong command or misleading instruction encountered during the work. The tools need to enforce it, and the team needs to verify it.

Connect each permission to a required action

Ask the team to show which operations the work requires. Reading relevant files, editing them and running tests are identifiable needs. Administrative access across all services extends far beyond them.

The following arrangement fits our example. Existing development and release facilities can fill these roles.

StageAccess needed in this exampleLimit to enforce
DevelopRelevant code, a working copy and fictional dataNo access to real customer records or the live application
VerifyProposed version and a test environmentCode running during tests cannot obtain production credentials
PublishApproved version and permission to release itRelease authority cannot execute arbitrary unverified code
Change the rulesA proposal the responsible person can examineThe AI cannot expand its own permissions or remove a required check

Pay particular attention to the test service. It executes the code the AI proposes. If that service holds credentials for real customer records, the code may use them even when the AI never directly sees the credentials.

Make the tools enforce the boundary

An instruction saying “do not touch customer data” explains the intention. The configuration also needs to prevent the action. The AI can read pages, tickets or files containing incorrect or malicious instructions. That text should not be enough to authorize an operation.

OWASP’s AI Agent Security guidance places authorization enforcement in the component executing the action, outside the model’s context. The system can then check the actor, resource, operation and required approval.

Inspect what the environment can read and reach: mounted directories, launched programs, network connections and external services. Blocking one command may leave another route to the same resource. Anthropic’s containment report illustrates why filesystem and network limits need to be considered together.

Resolve a blocked need without opening the whole system

Suppose the AI needs a test report to investigate a failure. The team can provide that report after removing sensitive information, for a defined period. This exception addresses a specific need.

The person approving it needs to know what will be read or changed and why. If the target or action changes, the earlier approval does not automatically cover the new request. Temporary access needs an expiry and a way to revoke it.

When an operation is refused, identify what is missing first. The tool may need a more precise command or a test-service connection. Sharing an administrator account for convenience would undo the original boundary.

Maintain control through release

The approved version needs to remain identifiable through installation. Released files should correspond to the files whose checks were examined. A late edit requires the affected checks to run again.

Changes to publication rules need a separate review from application changes. GitHub’s secure-use guidance explains risks from broad permissions and untrusted code running in privileged workflows. The team needs equivalent protections on its own platform.

Test refusals as well as permitted work

In a test environment, establish that the AI can complete its assignment while being blocked from reading a forbidden file, contacting an unapproved destination or publishing an unapproved version. Repeat relevant checks when tools or permissions change.

The previous article examines test quality. These access limits protect testing and publication. The next explains what to do when a faulty change reaches users despite those precautions.

Was this article useful to you?

Your feedback goes privately to TechnoConception. No account or email is required.

Responses expire after 90 days. They are not published or used as sales enquiries. A daily pseudonymous network identifier expires after 24 hours to limit abuse. Expired records are deleted by an hourly cleanup. The feedback database does not store your IP address; hosting security logs may still process it.

This browser stores only a receipt and your rating until the response expires, to reduce accidental duplicates. It does not store your comment or editing key. You can update a response during this page visit; after leaving, it becomes read-only in this browser.

Privacy policy

All insightsRSS feed

Related guides