

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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

Una política basada en recursos es un documento JSON que se adjunta directamente a una base de conocimientos gestionada. Controla qué directores de IAM pueden realizar acciones en la base de conocimientos, lo que permite casos de uso como el acceso entre cuentas. La política apoya ambas `Allow` y tiene efectos. `Deny`

**importante**  
Resource-based las políticas solo se admiten para las bases de conocimiento gestionadas (tipo`MANAGED`). Las bases de conocimiento vectoriales (tipo`VECTOR`) no admiten políticas de recursos.

## Acciones admitidas
<a name="kb-managed-cross-account-supported-actions"></a>

Las siguientes acciones se pueden utilizar en una política de recursos de la base de conocimientos:


****  

| Action | Description (Descripción) | 
| --- | --- | 
| bedrock:Retrieve | Consulte la base de conocimientos y recupere los resultados relevantes de las fuentes de datos. | 
| bedrock:GetDocumentContent | Recupere el contenido completo de un documento específico de la fuente de datos de la base de conocimientos. | 

**nota**  
Control-plane operaciones como`GetKnowledgeBase`, `UpdateKnowledgeBase``DeleteKnowledgeBase`, y las operaciones de administración de fuentes de datos no se pueden utilizar en las políticas de recursos. Estas operaciones deben realizarlas los directores de la cuenta del propietario de la base de conocimientos.

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

Las políticas de recursos de la base de conocimientos siguen la sintaxis estándar de las políticas de IAM. Para obtener más información sobre los elementos de la política y la lógica de evaluación, consulte la [referencia sobre los elementos de la política JSON de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) en la Guía del *AWS Identity and Access Management usuario*.

Se aplican las siguientes restricciones específicas del servicio:
+ **Solo bases de conocimiento gestionadas.** Las políticas de recursos solo se pueden adjuntar a las bases de conocimiento de este tipo`MANAGED`. Si se intenta adjuntar una política de recursos a una base `VECTOR` de conocimientos de tipos, se produce un error.
+ **Acciones compatibles.** Solo `bedrock:Retrieve` y se `bedrock:GetDocumentContent` puede usar en políticas de recursos.
+ **No hay caracteres comodín en Recurso o Acción.** Debe especificar el ARN completo de la base de conocimientos en el `Resource` elemento y enumerar de forma explícita cada acción. Estos elementos no admiten caracteres comodín.

## Cómo funciona el acceso entre cuentas
<a name="kb-managed-cross-account-how-it-works"></a>

Cross-account el acceso permite llamar a los directores de otras AWS cuentas `Retrieve` y a tu `GetDocumentContent` base de conocimientos. Para poder acceder al trabajo desde varias cuentas, se deben cumplir las dos condiciones siguientes:
+ El propietario de la base de conocimientos adjunta una política de recursos que permite el acceso a la persona que realiza la llamada.
+ El remitente de la llamada tiene una política basada en la identidad que permite las acciones correspondientes de Amazon Bedrock en el ARN de la base de conocimiento.

Para obtener más información sobre cómo IAM evalúa el acceso entre cuentas, consulte la lógica de evaluación de [Cross-account políticas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic-cross-account.html) en la Guía del usuario. AWS Identity and Access Management 

**Ejemplo: conceder acceso a varias cuentas**

La siguiente política de recursos otorga a una función de IAM específica en otra cuenta permiso para llamar `Retrieve` y: `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}}"
        }
    ]
}
```

**Otorgar acceso a varios directores**

Para conceder acceso a varios roles de consumo, enumere cada ARN de rol en una `Principal.AWS` 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 acceso a todos los principales de otra cuenta, usa la raíz de la cuenta como principal:

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

## Uso de las declaraciones Deny
<a name="kb-managed-cross-account-deny"></a>

Las políticas de recursos `Allow` respaldan ambos `Deny` efectos. Una disposición explícita `Deny` en una política de recursos anula cualquier otra política basada `Allow` en la identidad del director.

```
{
    "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}}"
}
```

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

Para gestionar las políticas de recursos en las bases de conocimiento, el director de IAM del propietario de la base de conocimientos necesita los siguientes permisos:


****  

| Action | Description (Descripción) | 
| --- | --- | 
| bedrock:PutResourcePolicy | Adjunte o actualice una política basada en recursos en una base de conocimientos. | 
| bedrock:GetResourcePolicy | Vea la política basada en recursos adjunta a una base de conocimientos. | 
| bedrock:DeleteResourcePolicy | Elimine la política basada en recursos de una base de conocimientos. | 

**Ejemplo de política para el propietario de la base de conocimientos**

```
{
    "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}}"
        }
    ]
}
```

**Operaciones de API**

**PutResourcePolicy**— Adjunta o reemplaza una política basada en recursos en una base de conocimientos.

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

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

El `policy` campo es una JSON-escaped cadena que contiene el documento de política.

**GetResourcePolicy**— Devuelve la política basada en recursos actualmente adjunta a una base de conocimientos.

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

Devuelve un valor `ResourceNotFoundException` si no hay ninguna política adjunta.

**DeleteResourcePolicy**— Elimina la política basada en recursos de una base de conocimientos.

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

## Control de versiones de políticas de recursos
<a name="kb-managed-cross-account-version-parameter"></a>

Cuando llamas`PutResourcePolicy`, la API devuelve una `policyRevisionId` que representa la versión actual de la política. Si lo desea, puede incluir este identificador de revisión en `PutResourcePolicy` llamadas posteriores para imponer un bloqueo optimista.
+ Si proporciona un identificador `policyRevisionId` que coincida con la versión actual, la actualización se realizará correctamente y se devolverá un nuevo identificador de revisión.
+ Si proporciona una `policyRevisionId` que no coincide con la versión actual (porque otro director actualizó la política entretanto), la llamada fallará y se generará un error de conflicto. Recupera la política actual, fusiona los cambios y vuelve a intentarlo.
+ Si las omite`policyRevisionId`, la política se sustituirá incondicionalmente, independientemente de cualquier modificación simultánea.

Utilice el identificador de revisión cuando varios administradores o sistemas de automatización puedan actualizar la misma política de la base de conocimientos de forma simultánea, a fin de evitar sobrescrituras accidentales.

## Configure la cuenta de consumidor
<a name="kb-managed-cross-account-identity-policy"></a>

En la cuenta consumidora, adjunte una política basada en la identidad al director que necesite acceder a la base de conocimientos compartida. La política debe permitir las acciones correspondientes de Amazon Bedrock en el ARN de la base de conocimiento de la cuenta del propietario.

**Ejemplo de política basada en la identidad**

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