Cloud access review: verify unused permissions

Review unused cloud permissions using ownership, observation scope and tests, without confusing missing activity with proof of unnecessary access.

Examples in this article are illustrative, not customer case studies. Product availability and coverage are described on the linked capability pages.

A role has no recent activity for a permission, but removing it breaks the next recovery exercise. A useful cloud access review combines observed use with ownership and workflow requirements instead of treating an empty activity field as permission to delete access.

Consider a fictional analytics platform with a daily ingestion worker, a periodic billing export and a recovery process. They share a role created when the platform was smaller. The review aims to reduce unnecessary access while identifying which dependencies should be separated into more specific identities.

Cloud access review starts with the principal and owner

Identify who or what can use the role, including the trust relationships that permit assumption. A permission attached to a role is only one part of the access path; the identities that can obtain it matter as well. Preserve the account, principal identifier and observation time with the review.

Name the team responsible for each consuming workflow. The analytics application owner may understand ingestion while a different operations team owns recovery. Asking one person to approve the entire role can miss a dependency that falls outside their normal work.

For the shared analytics role, build a consumer record before proposing removals. Include scheduled and emergency workflows, not just currently running services. If nobody owns a consumer, make ownership discovery a separate action rather than assuming the consumer no longer matters.

Cloud access review must state observation limits

Activity data describes what a particular collection mechanism observed during its supported period and scope. It may not cover every action or every relevant execution path. Confirm what the provider’s report means before translating a missing observation into a recommendation.

AWS IAM last-accessed information, for example, can include attempted access rather than only successful operations. Review the reporting limitations and the available action detail for the service involved. A recorded attempt does not by itself prove the permission is required, just as no reported attempt does not prove it is safe to remove.

For the analytics role, compare the observation window with the billing and recovery schedules. If the export runs outside the available period, classify its need as unverified. Keep that uncertainty beside the candidate permission so it does not disappear when the review is summarised.

Group permissions by workflow before narrowing them

Translate permissions into the operations each consumer is expected to perform. This helps the owner review a meaningful action, such as reading a designated input bucket, instead of approving a long policy document without context. Include the intended resource scope and relevant conditions.

Workflow Expected operation Evidence needed before change
Daily ingestion Read approved source objects Application configuration and successful test run
Billing export Write designated export objects Job owner confirmation and synthetic export
Recovery Restore approved data into a test target Documented recovery procedure and rehearsal
Unidentified consumer Unknown Ownership investigation, not automatic approval

The table may reveal that the shared role is the underlying maintenance problem. Separate identities can make future reviews easier because a permission has a clearer consumer. Plan that migration explicitly; splitting a role without updating every trust and credential reference can create another outage.

Review effective access rather than one policy in isolation

Cloud authorisation can involve identity policies, resource policies, trust relationships and other boundaries. A change to one document may not have the effect the reviewer expects. Establish which controls apply to the specific principal, resource and operation being evaluated.

In the analytics exercise, inspect whether another policy still grants the broad resource access targeted for removal. Also review whether a trust relationship allows an unrelated workload to assume the role. Narrowing the attached action list does not address every route by which the identity can be used.

Keep the proposed result concrete: which operation should remain allowed, which should become unavailable, and for which identity. A statement such as “least privilege achieved” is too broad to verify from one policy edit. The record should describe the boundary that the change actually tests.

Use controlled tests before and after the change

Choose synthetic resources and authorised test operations that represent the workflows. Establish an allowed baseline, apply the reviewed change in the appropriate test environment, and repeat both retained and removed access checks. Avoid using production data merely because it is easier to reach.

Verify that retained access still works through the real credential path the application uses. A manual test under an administrator session does not demonstrate that the worker can operate with its own role. Record the principal and the operation without exposing reusable credentials in the result.

For the access intended to be removed, verify a denial through the approved procedure. Interpret the result carefully: a nonexistent resource or malformed request can fail without exercising the intended policy boundary. Use a known test resource and keep the reason for denial distinguishable from unrelated errors where the provider allows it.

Roll out with an operational recovery plan

Schedule the change around the relevant workflows and identify who can respond if a legitimate dependency was missed. The recovery plan should name a reviewed previous policy or a narrowly scoped temporary correction. Avoid an undocumented broad grant that remains after the immediate failure is repaired.

Observe the ingestion worker and the next relevant export, then account for the recovery workflow through an authorised rehearsal or an explicit pending item. Do not close the entire review just because the daily path stayed healthy. Infrequent consumers are often where a shallow access review fails.

Record unexpected denied operations and investigate whether they are legitimate dependencies, stale code or attempted use outside the approved design. Restoring every rejected action automatically would erase the purpose of the review. Each addition should have an owner and an explanation.

Retain the decision and its review conditions

The final record should include the original and revised policy references, consumer inventory, observation scope and test evidence. State which permissions were removed, which were retained and why. For unresolved items, retain an explicit owner and the event that should trigger another review.

Revisit the decision when a new consumer, data store or trust relationship is introduced. A role appropriate for yesterday’s ingestion job may become excessive when reused by a new service. Keeping the review attached to the identity and its consumers makes that change easier to recognise.

The analytics team should finish with an understandable set of boundaries, not merely fewer policy lines. The next owner can then explain why each workflow has its access and how to test that assumption when the platform changes.

Key takeaways

  • Identify every consumer and owner before using activity data to propose removals.
  • Treat missing activity and recorded attempts according to their actual observation limits.
  • Review the effective access path and test both retained and removed permissions.
  • Keep infrequent workflows and unresolved dependencies visible through rollout and review.

How SecurityVault approaches this

SecurityVault’s identity-entitlements workflow represents relationships between identities, roles and resources as part of the investigation context. This helps a reviewer follow how access can arise and which application or workload may be involved. The model is useful because it connects the question to the relevant resources, rather than reducing the review to a list of policy names.

The cloud posture workflow adds configuration and exposure context to that investigation. Available observations can guide prioritisation, but missing activity should not be interpreted as definitive proof that a permission is unnecessary. Confirm the scope and freshness of the connected inputs during evaluation.

Identity owners still approve policy changes, test operational dependencies and record any exceptions. Use a test role with a daily consumer and an infrequent recovery workflow to assess how the evidence supports that decision. To plan a review around your own identity model, request a demonstration.

Further reading

See it on your stack

Bring CIEM into one finding graph.

SecurityVault is the enterprise security operating system: one graph of findings, policy and evidence from code to cloud. Explore the CIEM workflow with your engineering, security and compliance teams. No repository access is needed for the initial demonstration.