> ## Documentation Index
> Fetch the complete documentation index at: https://docs.basaltic.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Permissões do IAM

> Ações do IAM de conta, nomes de recursos e salvaguardas para acesso delegado da organização.

As ações do IAM se aplicam a funções de conta, contas de serviço, políticas e sessões. Conceda-os por meio de políticas de conta. Contas de organização, pessoas, grupos e políticas de organização usam [Ações de espaço de trabalho](/pt/workspace/permissions).

<a id="policy-role-and-group-crns-use-immutable-names" />

## Os CRNs de política, função e grupo usam nomes imutáveis

As funções de conta, políticas e contas de serviço usam nomes imutáveis em CRNs de recursos. Os grupos de workspace e as políticas organizacionais também usam nomes imutáveis, com o UUID da organização no caminho:

```
crn:iam::production:role/deploy
crn:iam::production:policy/read-reports
crn:iam::production:service-account/deploy-bot
crn:iam:::policy/Administrator
crn:workspace:::group/report-readers
```

O slot de conta vazio em uma política de sistema é intencional. Não é uma conta chamada `platform`. Parâmetros de caminho como `{role_id}` permanecem UUIDs. CRNs de princípio de política de confiança são um uso separado: identidades de máquina concretas são vinculadas a UUIDs, de modo que um nome recriado não herda confiança.

<a id="the-actions" />

## As ações

A referência da API e esta tabela usam as ações de autorização do serviço. `none` significa que outro mecanismo de autenticação é aplicado, conforme descrito abaixo.

| Chamada de telefone | Ação e aventura |
| - | - |
| `GET /v1/regions` | `none` |
| `GET /v1/service-accounts` | `iam:ListServiceAccounts` |
| `POST /v1/service-accounts` | `iam:CreateServiceAccount` |
| `GET /v1/service-accounts/{service_account_id}` | `iam:GetServiceAccount` |
| `PATCH /v1/service-accounts/{service_account_id}` | `iam:UpdateServiceAccount` |
| `DELETE /v1/service-accounts/{service_account_id}` | `iam:DeleteServiceAccount` |
| `GET /v1/service-accounts/{service_account_id}/credentials` | `iam:ListCredentials` |
| `POST /v1/service-accounts/{service_account_id}/credentials` | `iam:ManageCredentials` |
| `DELETE /v1/service-accounts/{service_account_id}/credentials/{credential_id}` | `iam:ManageCredentials` |
| `GET /v1/service-accounts/{service_account_id}/policies` | `iam:ListServiceAccountPolicies` |
| `POST /v1/service-accounts/{service_account_id}/policies` | `iam:AttachPolicy` |
| `DELETE /v1/service-accounts/{service_account_id}/policies/{policy_id}` | `iam:DetachPolicy` |
| `GET /v1/roles` | `iam:ListRoles` |
| `POST /v1/roles` | `iam:CreateRole` |
| `GET /v1/roles/{role_id}` | `iam:GetRole` |
| `PATCH /v1/roles/{role_id}` | `iam:UpdateRole` |
| `DELETE /v1/roles/{role_id}` | `iam:DeleteRole` |
| `GET /v1/roles/{role_id}/policies` | `iam:ListRolePolicies` |
| `POST /v1/roles/{role_id}/policies` | `iam:AttachPolicy` |
| `DELETE /v1/roles/{role_id}/policies/{policy_id}` | `iam:DetachPolicy` |
| `GET /v1/policies` | `iam:ListPolicies` |
| `POST /v1/policies` | `iam:CreatePolicy` |
| `GET /v1/policies/{policy_id}` | `iam:GetPolicy` |
| `PATCH /v1/policies/{policy_id}` | `iam:UpdatePolicy` |
| `DELETE /v1/policies/{policy_id}` | `iam:DeletePolicy` |
| `GET /v1/policies/{policy_id}/service-accounts` | `iam:GetPolicy` |
| `GET /v1/policies/{policy_id}/roles` | `iam:GetPolicy` |
| `POST /v1/assume-role` | `iam:AssumeRole` |
| `POST /v1/assume-role-with-web-identity` | `none` |
| `POST /v1/oauth/token` | `none` |
| `POST /v1/oauth/revoke` | `none` |
| `GET /v1/sts-sessions` | `iam:ListSTSSessions` |
| `GET /v1/sts-sessions/{session_id}` | `iam:GetSTSSession` |
| `DELETE /v1/sts-sessions/{session_id}` | `iam:RevokeSession` |
| `PUT /v1/service-accounts/{service_account_id}/permission-boundary` | `iam:SetPermissionBoundary` |
| `GET /v1/service-accounts/{service_account_id}/permission-boundary` | `iam:GetPermissionBoundary` |
| `DELETE /v1/service-accounts/{service_account_id}/permission-boundary` | `iam:RemovePermissionBoundary` |
| `GET /v1/service-accounts/{service_account_id}/inline-policies` | `iam:ListInlinePolicies` |
| `PUT /v1/service-accounts/{service_account_id}/inline-policies/{policy_name}` | `iam:PutInlinePolicy` |
| `GET /v1/service-accounts/{service_account_id}/inline-policies/{policy_name}` | `iam:GetInlinePolicy` |
| `DELETE /v1/service-accounts/{service_account_id}/inline-policies/{policy_name}` | `iam:DeleteInlinePolicy` |
| `PUT /v1/roles/{role_id}/permission-boundary` | `iam:SetPermissionBoundary` |
| `GET /v1/roles/{role_id}/permission-boundary` | `iam:GetPermissionBoundary` |
| `DELETE /v1/roles/{role_id}/permission-boundary` | `iam:RemovePermissionBoundary` |
| `GET /v1/roles/{role_id}/inline-policies` | `iam:ListInlinePolicies` |
| `PUT /v1/roles/{role_id}/inline-policies/{policy_name}` | `iam:PutInlinePolicy` |
| `GET /v1/roles/{role_id}/inline-policies/{policy_name}` | `iam:GetInlinePolicy` |
| `DELETE /v1/roles/{role_id}/inline-policies/{policy_name}` | `iam:DeleteInlinePolicy` |

`iam:PassRole` também é necessário ao atribuir uma função a uma instância ou a um pool de instâncias. A função deve pertencer à conta de destino.

<a id="attaching-and-detaching-require-both-resources" />

## Anexação e desassociação requerem ambos os recursos

`iam:AttachPolicy` e `iam:DetachPolicy` exigem a mesma ação na política de conta e na conta de função ou serviço de destino. Uma subvenção que abranja apenas políticas ou apenas identidades é insuficiente.

```json theme={null}
{
  "version": "2024-01-01",
  "statements": [{
    "effect": "allow",
    "actions": ["iam:AttachPolicy", "iam:DetachPolicy"],
    "resources": [
      "crn:iam::production:policy/read-reports",
      "crn:iam::production:role/reports"
    ]
  }]
}
```

Uma política de sistema precisa de cobertura de seu próprio `crn:iam:::policy/<Name>` CRN também. Cada verificação de recurso usa as tags desse recurso. Os limites e as políticas de sessão devem permitir ambas as verificações. Negação explícita em qualquer recurso impede a alteração.

Os anexos de políticas da organização usam rotas separadas do Workspace e uma verificação dupla diferente: consulte [delegação da organização](/pt/workspace/permissions#delegating-organization-policies).

<a id="listing-cannot-be-narrowed" />

## A listagem não pode ser restringida

As listas de nível superior autorizam um CRN de coleção, como `crn:iam::production:role/*`. Eles não autorizam cada linha retornada separadamente. Uma permissão em um CRN de função concreta, portanto, não concede acesso à lista. As listas de relacionamento autorizam seu pai, como uma função ao listar suas políticas de conta. Os filtros de consulta de nome e CRN escolhem linhas; eles não alteram a permissão necessária para listá-las.

<a id="sub-resources-are-governed-by-their-parent" />

## Os sub-recursos são governados pelo seu pai

A autorização de política em linha usa o CRN da identidade principal mais `/inline-policy/<name>` ou `/inline-policy/*` para sua lista:

```
crn:iam::production:role/deploy/inline-policy/read-artifacts
```

Operações de limite de conta usam `crn:iam::production:permission-boundary/<principal-uuid>`. A definição de um limite também requer permissão para ler a política selecionada. Os limites de usuário do espaço de trabalho usam sua própria forma de recurso de escopo organizacional.

A política em linha e o gerenciamento de limites são permissões confidenciais. Alguém que pode substituir um limite pode aumentar seu limite máximo; não inclua essas ações em uma delegação destinada apenas a gerenciar políticas abaixo de um limite máximo fixo.

<a id="protecting-organization-delegation" />

## Proteger a delegação da organização

As permissões de administrador de conta não permitem que alguém adquira autoridade de organização indiretamente. Operações confidenciais em uma identidade que já tem concessões de organização também exigem autoridade de delegação de espaço de trabalho para essas concessões. Isso inclui passar uma função, alterar sua confiança, emitir credenciais de conta de serviço e alterar limites de identidade.

<a id="sessions-and-authentication" />

## Sessões e autenticação

As leituras e revogações de sessão de conta autorizam `crn:iam::<account-handle>:sts-session/<session-uuid>`. A conta selecionada deve ser proprietária da sessão. As sessões de início de sessão pessoal não aparecem nesta coleção.

O endpoint de revogação também lê a sessão para sua resposta, então conceda `iam:GetSTSSession` junto com `iam:RevokeSession`.

O catálogo de regiões públicas não tem ação de política. A troca de token OAuth valida as credenciais e a revogação de token valida a sessão fornecida. A suposição de identidade da Web verifica a identidade externa e a confiança do alvo; não requer a permissão `iam:AssumeRole` de um chamador existente. Ordinary AssumeRole faz isso.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.