Identity & Access Management

Preview — pending review

This reference is generated from the platform API contract and is still under review. Operations, fields, and descriptions can change before publication.

Get an Access Analyzer finding

GET
/scopes/{scopeId}/iam/access-findings/{accessFindingId}

Retrieves the full detail read model for a single Access Analyzer finding, powering the finding detail page: the exposed resource and its ARN, an optional console deep-link (resourceHref), the external principal, exposure class, granted access level and concrete actions, the rendered granting policy statement (sid/effect/service/actions/resources/conditions), the analyzer recommendation, and the analyzed/first-observed timestamps. Validation: scopeId must be an accessible scope and accessFindingId must reference a finding inside that scope; an unknown or out-of-scope id maps to NOT_FOUND (404). No body or mutation parameters exist. Async & state: Synchronous read; no state change. Errors: 401 when unauthenticated; 403 from either of two checks — the caller's role does not grant IAM read on the scope, or a bearer API token is missing the iam:read action scope (token principals only, so even an owner's token gets 403 without it); 404 when the finding does not exist or is not visible in this scope; 500 on read-model failure. Idempotency/Concurrency: Safe, cacheable; no idempotency key required. The response carries no ETag; archive and resolve do not check If-Match.

Authorization

bearerToken
headerAuthorizationBearer <token>

An API token (pc_live_…) or a service-account key (sak_live_…), created in Identity & Access Management and sent as Authorization: Bearer <token>. Requests are rate limited per credential and per tenant: every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset, and a refused request gets 429 RATE_LIMITED with Retry-After.

Path Parameters

scopeId*string

Opaque ownership+authorization scope resolving to tenant + subscription + project.

accessFindingId*string

Identifier of the access finding.

Response Body

The access finding detail read model.

application/json
  1. response

An Access Analyzer finding — a resource reachable by an external principal.

id*string

Finding identifier.

resource*string

Display name of the exposed resource.

resourceArn*string

Full ARN of the exposed resource.

resourceType*AccessFindingResourceType

Type of resource covered by an Access Analyzer finding.

Value in"Object bucket""KMS key""IAM role""Secret""Snapshot""Machine image""File share""Database"
resourceHref*|

Deep-link target within the console (scoped path suffix), or null when no console page exists.

exposure*AccessFindingExposure

How the resource is exposed to external principals.

Value in"Public""Cross-account""Cross-organization"
externalPrincipal*string

External principal / account that gained access.

accessLevel*AccessFindingAccessLevel

Access level an external principal gained on the resource.

Value in"Read""Write""Full""List"
actions*array<string>

Concrete actions the external principal can perform.

status*AccessFindingStatus

Lifecycle status of an Access Analyzer finding.

Value in"Active""Archived""Resolved"
grantStatement*

The policy statement that grants the external access reported by the finding.

recommendation*string

Analyzer remediation recommendation.

analyzedAt*string

When the analyzer last evaluated this finding.

Formatdate-time
firstObservedAt*string

When the external access was first observed.

Formatdate-time
curl -X GET "https://example.com/scopes/string/iam/access-findings/string"
{  "id": "string",  "resource": "string",  "resourceArn": "string",  "resourceType": "Object bucket",  "resourceHref": "string",  "exposure": "Public",  "externalPrincipal": "string",  "accessLevel": "Read",  "actions": [    "string"  ],  "status": "Active",  "grantStatement": {    "sid": "string",    "effect": "Allow",    "service": "string",    "actions": [      "string"    ],    "resources": [      "string"    ],    "conditions": [      {        "operator": "string",        "key": "string",        "value": "string"      }    ]  },  "recommendation": "string",  "analyzedAt": "2019-08-24T14:15:22Z",  "firstObservedAt": "2019-08-24T14:15:22Z"}