

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Políticas de recursos para bases de conhecimento gerenciadas
<a name="kb-managed-cross-account"></a>

Uma política baseada em recursos é um documento JSON que você anexa diretamente a uma base de conhecimento gerenciada. Ele controla quais diretores do IAM podem realizar ações na base de conhecimento, permitindo casos de uso como acesso entre contas. A política apóia tanto os `Deny` efeitos `Allow` quanto os efeitos.

**Importante**  
Resource-based as políticas são suportadas somente para bases de conhecimento gerenciadas (tipo`MANAGED`). As bases de conhecimento vetorial (tipo`VECTOR`) não oferecem suporte a políticas de recursos.

## Ações compatíveis
<a name="kb-managed-cross-account-supported-actions"></a>

As ações a seguir podem ser usadas em uma política de recursos da base de conhecimento:


****  

| Ação | Description | 
| --- | --- | 
| bedrock:Retrieve | Consulte a base de conhecimento e recupere resultados relevantes das fontes de dados. | 
| bedrock:GetDocumentContent | Recupere o conteúdo completo de um documento específico da fonte de dados da base de conhecimento. | 

**nota**  
Control-plane operações como`GetKnowledgeBase`,, `UpdateKnowledgeBase``DeleteKnowledgeBase`, e operações de gerenciamento de fonte de dados não podem ser usadas em políticas de recursos. Essas operações devem ser realizadas pelos diretores na conta do proprietário da base de conhecimento.

## Requisitos da política de recursos
<a name="kb-managed-cross-account-resource-policy"></a>

As políticas de recursos da base de conhecimento seguem a sintaxe padrão da política do IAM. Para obter detalhes sobre elementos de política e lógica de avaliação, consulte a [referência de elementos de política JSON do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) no *Guia do AWS Identity and Access Management usuário*.

As seguintes restrições específicas do serviço se aplicam:
+ **Somente bases de conhecimento gerenciadas.** As políticas de recursos só podem ser anexadas a bases de conhecimento do tipo`MANAGED`. A tentativa de anexar uma política de recursos a uma base `VECTOR` de conhecimento de tipos retorna um erro.
+ **Ações apoiadas.** Somente `bedrock:Retrieve` e `bedrock:GetDocumentContent` pode ser usado em políticas de recursos.
+ **Sem curingas em Recurso ou Ação.** Você deve especificar o ARN completo da base de conhecimento no `Resource` elemento e listar explicitamente cada ação. Não há suporte para curingas nesses elementos.

## Como funciona o acesso entre contas
<a name="kb-managed-cross-account-how-it-works"></a>

Cross-account o acesso permite que diretores de outras AWS contas `Retrieve` liguem para sua `GetDocumentContent` base de conhecimento. Para acesso ao trabalho entre contas, as duas condições a seguir devem ser atendidas:
+ O proprietário da base de conhecimento anexa uma política de recursos que concede acesso ao responsável pela chamada.
+ O responsável pela chamada tem uma política baseada em identidade que permite as ações correspondentes do Amazon Bedrock na base de conhecimento ARN.

Para obter mais informações sobre como o IAM avalia o acesso entre contas, consulte a [lógica Cross-account de avaliação de políticas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic-cross-account.html) no Guia do AWS Identity and Access Management usuário.

**Exemplo: conceder acesso entre contas**

A política de recursos a seguir concede a uma função específica do IAM em outra conta permissão para chamar `Retrieve` e`GetDocumentContent`:

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowCrossAccountRetrieve",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{{CONSUMER_ACCOUNT_ID}}:role/{{service-role-name}}"
            },
            "Action": [
                "bedrock:Retrieve",
                "bedrock:GetDocumentContent"
            ],
            "Resource": "arn:aws:bedrock:{{REGION}}:{{OWNER_ACCOUNT_ID}}:knowledge-base/{{KB_ID}}"
        }
    ]
}
```

**Concedendo acesso a vários diretores**

Para conceder acesso a várias funções consumidoras, liste cada ARN da função `Principal.AWS` como uma matriz:

```
"Principal": {
    "AWS": [
        "arn:aws:iam::{{ACCOUNT_ID_1}}:role/{{role-name-1}}",
        "arn:aws:iam::{{ACCOUNT_ID_2}}:role/{{role-name-2}}"
    ]
}
```

Para conceder acesso a todos os diretores em outra conta, use a raiz da conta como principal:

```
"Principal": {
    "AWS": "arn:aws:iam::{{CONSUMER_ACCOUNT_ID}}:root"
}
```

## Usando declarações de negação
<a name="kb-managed-cross-account-deny"></a>

As políticas de recursos apoiam tanto os `Deny` efeitos `Allow` quanto os efeitos. Um explícito `Deny` em uma política de recursos substitui qualquer política baseada `Allow` em identidade do diretor.

```
{
    "Sid": "DenySpecificPrincipals",
    "Effect": "Deny",
    "Principal": {
        "AWS": "arn:aws:iam::{{ACCOUNT_ID}}:role/{{role-name}}"
    },
    "Action": [
        "bedrock:Retrieve",
        "bedrock:GetDocumentContent"
    ],
    "Resource": "arn:aws:bedrock:{{REGION}}:{{OWNER_ACCOUNT_ID}}:knowledge-base/{{KB_ID}}"
}
```

## Gerenciar políticas de recursos
<a name="kb-managed-cross-account-manage-policies"></a>

Para gerenciar políticas de recursos em bases de conhecimento, o diretor do IAM do proprietário da base de conhecimento precisa das seguintes permissões:


****  

| Ação | Description | 
| --- | --- | 
| bedrock:PutResourcePolicy | Anexe ou atualize uma política baseada em recursos em uma base de conhecimento. | 
| bedrock:GetResourcePolicy | Veja a política baseada em recursos anexada a uma base de conhecimento. | 
| bedrock:DeleteResourcePolicy | Remova a política baseada em recursos de uma base de conhecimento. | 

**Exemplo de política para o proprietário da base de conhecimento**

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "bedrock:PutResourcePolicy",
                "bedrock:GetResourcePolicy",
                "bedrock:DeleteResourcePolicy"
            ],
            "Resource": "arn:aws:bedrock:{{REGION}}:{{ACCOUNT_ID}}:knowledge-base/{{KB_ID}}"
        }
    ]
}
```

**Operações de API**

**PutResourcePolicy**— Anexa ou substitui uma política baseada em recursos em uma base de conhecimento.

```
PUT /resourcepolicy/{{{knowledgeBaseArn}}} HTTP/1.1
Content-Type: application/json

{
    "policy": "{{{policyDocument}}}"
}
```

O `policy` campo é uma JSON-escaped string contendo o documento de política.

**GetResourcePolicy**— Retorna a política baseada em recursos atualmente vinculada a uma base de conhecimento.

```
GET /resourcepolicy/{{{knowledgeBaseArn}}} HTTP/1.1
```

Retorna como `ResourceNotFoundException` se nenhuma política estiver anexada.

**DeleteResourcePolicy**— Remove a política baseada em recursos de uma base de conhecimento.

```
DELETE /resourcepolicy/{{{knowledgeBaseArn}}} HTTP/1.1
```

## Controle de versão da política de recursos
<a name="kb-managed-cross-account-version-parameter"></a>

Quando você chama`PutResourcePolicy`, a API retorna uma `policyRevisionId` que representa a versão atual da política. Opcionalmente, você pode incluir essa ID de revisão em `PutResourcePolicy` chamadas subsequentes para impor um bloqueio otimista.
+ Se você fornecer uma `policyRevisionId` que corresponda à versão atual, a atualização será bem-sucedida e uma nova ID de revisão será retornada.
+ Se você fornecer uma `policyRevisionId` que não corresponda à versão atual (porque outro diretor atualizou a política nesse meio tempo), a chamada falhará com um erro de conflito. Recupere a política atual, mescle suas alterações e tente novamente.
+ Se você omitir o`policyRevisionId`, a política será substituída incondicionalmente, independentemente de quaisquer modificações simultâneas.

Use a ID de revisão quando vários administradores ou sistemas de automação puderem atualizar a mesma política da base de conhecimento simultaneamente, para evitar substituições acidentais.

## Configurar a conta do consumidor
<a name="kb-managed-cross-account-identity-policy"></a>

Na conta consumidora, anexe uma política baseada em identidade ao diretor que precisa acessar a base de conhecimento compartilhada. A política deve permitir as ações correspondentes do Amazon Bedrock no ARN da base de conhecimento na conta do proprietário.

**Exemplo de política baseada em identidade**

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "bedrock:Retrieve",
                "bedrock:GetDocumentContent"
            ],
            "Resource": "arn:aws:bedrock:{{REGION}}:{{OWNER_ACCOUNT_ID}}:knowledge-base/{{KB_ID}}"
        }
    ]
}
```