Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Politiques relatives aux ressources pour les bases de connaissances gérées
Une politique basée sur les ressources est un document JSON que vous attachez directement à une base de connaissances gérée. Il contrôle les principaux IAM autorisés à effectuer des actions sur la base de connaissances, ce qui permet des cas d'utilisation tels que l'accès entre comptes. La politique soutient les deux Allow et leurs Deny effets.
Important
Resource-based les politiques ne sont prises en charge que pour les bases de connaissances gérées (typeMANAGED). Les bases de connaissances vectorielles (typeVECTOR) ne prennent pas en charge les politiques relatives aux ressources.
Actions prises en charge
Les actions suivantes peuvent être utilisées dans une politique de ressources de base de connaissances :
| Action | Description |
|---|---|
bedrock:Retrieve |
Interrogez la base de connaissances et récupérez les résultats pertinents à partir des sources de données. |
bedrock:GetDocumentContent |
Récupérez le contenu complet d'un document spécifique à partir de la source de données de la base de connaissances. |
Note
Control-plane les opérations telles queGetKnowledgeBase, UpdateKnowledgeBaseDeleteKnowledgeBase, et les opérations de gestion des sources de données ne peuvent pas être utilisées dans les politiques de ressources. Ces opérations doivent être effectuées par les principaux dans le compte du propriétaire de la base de connaissances.
Exigences relatives à la politique des ressources
Les politiques relatives aux ressources de la base de connaissances suivent la syntaxe standard des politiques IAM. Pour plus de détails sur les éléments de stratégie et la logique d'évaluation, consultez la référence des éléments de stratégie IAM JSON dans le guide de Gestion des identités et des accès AWS l'utilisateur.
Les contraintes spécifiques aux services suivantes s'appliquent :
-
Bases de connaissances gérées uniquement. Les politiques de ressources ne peuvent être associées qu'à des bases de connaissances de ce type
MANAGED. Toute tentative d'associer une politique de ressources à une baseVECTORde connaissances de type renvoie une erreur. -
Actions prises en charge. Uniquement
bedrock:Retrieveetbedrock:GetDocumentContentutilisable dans les politiques de ressources. -
Aucun caractère générique dans Resource ou Action. Vous devez spécifier l'ARN complet de la base de connaissances dans l'
Resourceélément et répertorier explicitement chaque action. Les caractères génériques ne sont pas pris en charge dans ces éléments.
Comment fonctionne l'accès entre comptes
Cross-account l'accès permet aux responsables d'autres AWS comptes d'appeler Retrieve et d'accéder à votre GetDocumentContent base de connaissances. Pour accéder au travail entre comptes, les deux conditions suivantes doivent être remplies :
-
Le propriétaire de la base de connaissances joint une politique de ressources qui accorde l'accès au principal appelant.
-
Le principal appelant dispose d'une politique basée sur l'identité qui autorise les actions Amazon Bedrock correspondantes sur l'ARN de la base de connaissances.
Pour plus d'informations sur la manière dont IAM évalue l'accès entre comptes, consultez la logique d'évaluation des Cross-account politiques dans le guide de l' Gestion des identités et des accès AWS utilisateur.
Exemple : accorder un accès entre comptes
La politique de ressources suivante accorde à un rôle IAM spécifique dans un autre compte l'autorisation d'appeler Retrieve et 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" } ] }
Accorder l'accès à plusieurs principaux
Pour accorder l'accès à plusieurs rôles consommateurs, listez l'ARN de chaque rôle Principal.AWS sous forme de tableau :
"Principal": { "AWS": [ "arn:aws:iam::ACCOUNT_ID_1:role/role-name-1", "arn:aws:iam::ACCOUNT_ID_2:role/role-name-2" ] }
Pour accorder l'accès à tous les principaux d'un autre compte, utilisez le compte root comme principal :
"Principal": { "AWS": "arn:aws:iam::CONSUMER_ACCOUNT_ID:root" }
Utilisation des instructions Deny
Les politiques en matière de ressources soutiennent les deux Allow et Deny leurs effets. Un élément explicite Deny dans une politique de ressources remplace tout Allow élément de la politique basée sur l'identité du principal.
{ "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" }
Gérer les politiques relatives aux ressources
Pour gérer les politiques de ressources sur les bases de connaissances, le principal IAM du propriétaire de la base de connaissances a besoin des autorisations suivantes :
| Action | Description |
|---|---|
bedrock:PutResourcePolicy |
Associez ou mettez à jour une politique basée sur les ressources dans une base de connaissances. |
bedrock:GetResourcePolicy |
Consultez la politique basée sur les ressources attachée à une base de connaissances. |
bedrock:DeleteResourcePolicy |
Supprimez la politique basée sur les ressources d'une base de connaissances. |
Exemple de politique pour le propriétaire de la base de connaissances
{ "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" } ] }
Opérations d'API
PutResourcePolicy— Attache ou remplace une politique basée sur les ressources dans une base de connaissances.
PUT /resourcepolicy/{knowledgeBaseArn}HTTP/1.1 Content-Type: application/json { "policy": "{policyDocument}" }
Le policy champ est une JSON-escaped chaîne contenant le document de politique.
GetResourcePolicy— Renvoie la politique basée sur les ressources actuellement attachée à une base de connaissances.
GET /resourcepolicy/{knowledgeBaseArn}HTTP/1.1
Renvoie un ResourceNotFoundException si aucune politique n'est attachée.
DeleteResourcePolicy— Supprime la politique basée sur les ressources d'une base de connaissances.
DELETE /resourcepolicy/{knowledgeBaseArn}HTTP/1.1
Gestion des versions des politiques de ressources
Lorsque vous appelezPutResourcePolicy, l'API renvoie un policyRevisionId qui représente la version actuelle de la politique. Vous pouvez éventuellement inclure cet ID de révision dans les PutResourcePolicy appels suivants pour appliquer un verrouillage optimiste.
-
Si vous fournissez un
policyRevisionIdqui correspond à la version actuelle, la mise à jour aboutit et un nouvel identifiant de révision est renvoyé. -
Si vous fournissez une version
policyRevisionIdqui ne correspond pas à la version actuelle (parce qu'un autre principal a mis à jour la politique entre-temps), l'appel échoue avec une erreur de conflit. Récupérez la politique actuelle, fusionnez vos modifications et réessayez. -
Si vous omettez le
policyRevisionId, la politique est remplacée sans condition, quelles que soient les modifications simultanées.
Utilisez l'ID de révision lorsque plusieurs administrateurs ou systèmes d'automatisation peuvent mettre à jour simultanément la même politique de base de connaissances, afin d'éviter les remplacements accidentels.
Configuration du compte client
Dans le compte consommateur, associez une politique basée sur l'identité au principal qui doit accéder à la base de connaissances partagée. La politique doit autoriser les actions Amazon Bedrock correspondantes sur l'ARN de la base de connaissances du compte propriétaire.
Exemple de politique basée sur l'identité
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock:Retrieve", "bedrock:GetDocumentContent" ], "Resource": "arn:aws:bedrock:REGION:OWNER_ACCOUNT_ID:knowledge-base/KB_ID" } ] }