Controllo dell'accesso ai dati per Amazon OpenSearch Serverless - OpenSearch Servizio Amazon

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Controllo dell'accesso ai dati per Amazon OpenSearch Serverless

Con il controllo dell'accesso ai dati in Amazon OpenSearch Serverless, puoi consentire agli utenti di accedere a raccolte e indici, indipendentemente dal meccanismo di accesso o dalla fonte di rete. Puoi fornire l'accesso ai ruoli IAM e alle identità SAML.

Puoi gestire le autorizzazioni di accesso tramite le policy di accesso ai dati, che si applicano alle raccolte e alle risorse dell'indice. Le policy di accesso ai dati consentono di gestire le raccolte su larga scala assegnando automaticamente autorizzazioni di accesso a raccolte e indici che corrispondono a uno schema specifico. È possibile applicare più policy di accesso ai dati a una singola risorsa. Tieni presente che devi disporre di una politica di accesso ai dati per la tua raccolta per poter accedere all'URL delle dashboard OpenSearch .

Policy di accesso ai dati rispetto alle policy IAM

Le policy di accesso ai dati sono logicamente separate dalle policy AWS Identity and Access Management (IAM). Le autorizzazioni IAM controllano l'accesso alle operazioni API serverless, come CreateCollection e ListAccessPolicies. Le politiche di accesso ai dati controllano l'accesso alle OpenSearch operazioni supportate da OpenSearch Serverless, come PUT <index> o. GET _cat/indices

Le autorizzazioni IAM che controllano l'accesso alle operazioni dell'API della policy di accesso ai dati, come aoss:CreateAccessPolicy e aoss:GetAccessPolicy (descritte nella sezione successiva), non influiscono sull'autorizzazione specificata in una policy di accesso ai dati.

Ad esempio, supponiamo che una policy IAM impedisca a un utente di creare policy di accesso ai dati per collection-a, ma gli consenta di creare policy di accesso ai dati per tutte le raccolte (*):

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "aoss:CreateAccessPolicy" ], "Resource": "*", "Condition": { "StringLike": { "aoss:collection": "collection-a" } } }, { "Effect": "Allow", "Action": [ "aoss:CreateAccessPolicy" ], "Resource": "*" } ] }

Se l'utente crea una policy di accesso ai dati che consente determinate autorizzazioni per tutte le raccolte (collection/* o index/*/*), la policy si applicherà a tutte le raccolte, inclusa la raccolta A.

Importante

La concessione delle autorizzazioni nell'ambito di una politica di accesso ai dati non è sufficiente per accedere ai dati della raccolta OpenSearch Serverless. A un principale associato deve inoltre essere concesso l'accesso alle autorizzazioni aoss:APIAccessAll IAM e. aoss:DashboardsAccessAll Entrambe le autorizzazioni garantiscono l'accesso completo alle risorse di raccolta, mentre l'autorizzazione Dashboards fornisce anche l'accesso alle dashboard. OpenSearch Se un principale non dispone di entrambe queste autorizzazioni IAM, riceverà 403 errori quando tenta di inviare richieste alla raccolta. Per ulteriori informazioni, consulta Utilizzo delle operazioni OpenSearch API.

Autorizzazioni IAM necessarie per configurare le politiche di accesso ai dati

Il controllo dell'accesso ai dati per OpenSearch Serverless utilizza le seguenti autorizzazioni IAM. È possibile specificare condizioni IAM per limitare gli utenti a nomi di policy di accesso specifici.

  • aoss:CreateAccessPolicy: crea una policy di accesso.

  • aoss:ListAccessPolicies: elenca tutte le policy di accesso.

  • aoss:GetAccessPolicy: visualizza i dettagli su una policy di accesso specifica.

  • aoss:UpdateAccessPolicy: modifica una policy di accesso.

  • aoss:DeleteAccessPolicy: elimina una policy di accesso.

La seguente policy di accesso basata sull'identità consente a un utente di visualizzare tutte le policy di accesso e aggiornare le policy che contengono il modello delle risorse collection/logs.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "aoss:ListAccessPolicies", "aoss:GetAccessPolicy" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "aoss:UpdateAccessPolicy" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "aoss:collection": [ "logs" ] } } } ] }
Nota

Inoltre, OpenSearch Serverless richiede le autorizzazioni aoss:APIAccessAll e le aoss:DashboardsAccessAll autorizzazioni per le risorse di raccolta. Per ulteriori informazioni, consulta Utilizzo delle operazioni OpenSearch API.

Sintassi delle policy

Una policy di accesso ai dati include una serie di regole, ognuna con i seguenti elementi:

Elemento Descrizione
ResourceType Il tipo di risorsa (raccolta o indice) a cui si applicano le autorizzazioni. Le autorizzazioni degli alias e dei modelli sono a livello di raccolta, mentre le autorizzazioni per la creazione, la modifica e la ricerca dei dati sono a livello di indice. Per ulteriori informazioni, consulta la sezione Supported policy permissions (Autorizzazioni delle policy supportate).
Resource Un elenco di nomi e/o modelli di risorse. I modelli sono prefissi seguiti da un carattere jolly (*), che consentono di applicare le autorizzazioni associate a più risorse.
  • Le raccolte hanno il formato collection/<name|pattern>.

  • Gli indici hanno il formato index/<collection-name|pattern>/<index-name|pattern/>.

Permission Un elenco di autorizzazioni da concedere per le risorse specificate. Per un elenco completo delle autorizzazioni e delle operazioni dell'API che queste concedono, consulta la sezione Operazioni e autorizzazioni API supportate OpenSearch .
Principal Un elenco di uno o più principali a cui concedere l'accesso. I principali possono essere ARN di ruoli IAM o identità SAML. Questi principali devono essere all'interno dell' Account AWS corrente. Le policy di accesso ai dati non supportano direttamente l'accesso tra account diversi, ma puoi includere nella policy un ruolo che un utente di un altro account Account AWS può assumere nell'account proprietario della raccolta. Per ulteriori informazioni, consulta Accesso ai dati tra account.

La seguente policy di esempio concede autorizzazioni di alias e modello alla raccolta denominata autopartsinventory, nonché a tutte le raccolte che iniziano con il prefisso sales*. Inoltre, concede autorizzazioni di lettura e scrittura a tutti gli indici della raccolta autopartsinventory e a tutti gli indici della raccolta salesorders che iniziano con il prefisso orders*.

[ { "Description": "Rule 1", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/autopartsinventory", "collection/sales*" ], "Permission":[ "aoss:CreateCollectionItems", "aoss:UpdateCollectionItems", "aoss:DescribeCollectionItems" ] }, { "ResourceType":"index", "Resource":[ "index/autopartsinventory/*", "index/salesorders/orders*" ], "Permission":[ "aoss:*" ] } ], "Principal":[ "arn:aws:iam::123456789012:user/Dale", "arn:aws:iam::123456789012:role/RegulatoryCompliance", "saml/123456789012/myprovider/user/Annie", "saml/123456789012/anotherprovider/group/Accounting" ] } ]

Non puoi negare esplicitamente l'accesso all'interno di una policy. Pertanto, tutte le autorizzazioni delle policy sono additive. Ad esempio, se a un utente una policy concede aoss:ReadDocument e un'altra concede aoss:WriteDocument, l'utente avrà entrambe le autorizzazioni. Se una terza policy concede aoss:* allo stesso utente, l'utente può eseguire tutte le azioni sull'indice associato; le autorizzazioni più restrittive non sostituiscono quelle meno restrittive.

Autorizzazioni delle policy supportate

Le seguenti autorizzazioni sono supportate nelle policy di accesso ai dati. Per le operazioni OpenSearch API consentite da ciascuna autorizzazione, consulta. Operazioni e autorizzazioni API supportate OpenSearch

Autorizzazioni della raccolta

  • aoss:CreateCollectionItems

  • aoss:DeleteCollectionItems

  • aoss:UpdateCollectionItems

  • aoss:DescribeCollectionItems

  • aoss:*

Autorizzazioni dell'indice

  • aoss:ReadDocument

  • aoss:WriteDocument

  • aoss:CreateIndex

  • aoss:DeleteIndex

  • aoss:UpdateIndex

  • aoss:DescribeIndex

  • aoss:*

Set di dati di esempio nelle dashboard OpenSearch

OpenSearch Dashboards fornisce set di dati di esempio che includono visualizzazioni, dashboard e altri strumenti per aiutarti a esplorare le dashboard prima di aggiungere i tuoi dati. Per creare indici a partire da questi dati di esempio, è necessaria una politica di accesso ai dati che fornisca le autorizzazioni per il set di dati con cui desideri lavorare. La seguente politica utilizza un wildcard (*) per fornire le autorizzazioni per tutti e tre i set di dati di esempio.

[ { "Rules": [ { "Resource": [ "index/<collection-name>/opensearch_dashboards_sample_data_*" ], "Permission": [ "aoss:CreateIndex", "aoss:DescribeIndex", "aoss:ReadDocument" ], "ResourceType": "index" } ], "Principal": [ "arn:aws:iam::<account-id>:user/<user>" ] } ]

Creazione di policy di accesso ai dati (console)

È possibile creare una policy di accesso ai dati utilizzando l'editor visivo o in formato JSON. A qualsiasi nuova raccolta che corrisponde a uno dei modelli definiti nella policy verranno assegnate le autorizzazioni corrispondenti al momento della creazione della raccolta.

Per creare una politica di accesso ai dati OpenSearch Serverless
  1. Apri la console Amazon OpenSearch Service all'indirizzo https://console.aws.amazon.com/aos/home.

  2. Nel pannello di navigazione a sinistra, espandi Serverless e scegli Data access control (Controllo dell'accesso ai dati).

  3. Scegli Create access policy (Crea policy di accesso).

  4. Fornisci un nome e una descrizione per la policy.

  5. Fornisci un nome per la prima regola nella policy. Ad esempio, "Accesso alla raccolta di log".

  6. Scegli Add principals (Aggiungi principali) e seleziona uno o più ruoli IAM o utenti e gruppi SAML a cui fornire l'accesso ai dati.

    Nota

    Per poter selezionare i principali dai menu a discesa, è necessario disporre delle autorizzazioni iam:ListUsers e iam:ListRoles (per i principali IAM) e dell'autorizzazione aoss:ListSecurityConfigs (per le identità SAML).

  7. Scegli Grant (Concedi) e seleziona le autorizzazioni per l'alias, il modello e l'indice da concedere ai principali associati. Per un elenco completo delle autorizzazioni e l'accesso che queste concedono, consulta la sezione Operazioni e autorizzazioni API supportate OpenSearch .

  8. (Facoltativo) Configurazione di regole aggiuntive per la policy.

  9. Scegli Crea. Potrebbe esserci circa un minuto di ritardo tra il momento in cui si crea la policy e il momento in cui vengono applicate le autorizzazioni. Se occorrono più di 5 minuti, contatta AWS Support.

Importante

Se la policy include solo le autorizzazioni dell'indice (e nessuna autorizzazione della raccolta), potresti comunque visualizzare un messaggio per le raccolte corrispondenti che indica Collection cannot be accessed yet. Configure data access policies so that users can access the data within this collection. Tale avviso si può ignorare. I principali autorizzati possono comunque eseguire le operazioni relative all'indice assegnate sulla raccolta.

Creazione di policy di accesso ai dati (AWS CLI)

Per creare una politica di accesso ai dati utilizzando l'API OpenSearch Serverless, usa il CreateAccessPolicy comando. Il comando accetta sia policy inline che file .json. Le policy inline devono essere codificate come una stringa con escape JSON.

La seguente richiesta crea una policy di accesso ai dati:

aws opensearchserverless create-access-policy \ --name marketing \ --type data \ --policy "[{\"Rules\":[{\"ResourceType\":\"collection\",\"Resource\":[\"collection/autopartsinventory\",\"collection/sales*\"],\"Permission\":[\"aoss:UpdateCollectionItems\"]},{\"ResourceType\":\"index\",\"Resource\":[\"index/autopartsinventory/*\",\"index/salesorders/orders*\"],\"Permission\":[\"aoss:ReadDocument\",\"aoss:DescribeIndex\"]}],\"Principal\":[\"arn:aws:iam::123456789012:user/Shaheen\"]}]"

Per fornire la policy all'interno di un file .json, utilizza il formato --policy file://my-policy.json.

I principali inclusi nella policy possono ora utilizzare le OpenSearch operazioni a cui hanno avuto accesso.

Visualizzazione di policy di accesso ai dati

Prima di creare una raccolta, hai la possibilità di visualizzare in anteprima le policy di accesso ai dati esistenti nel tuo account per vedere quali hanno un modello di risorse che corrisponde al nome della raccolta. La seguente ListAccessPoliciesrichiesta elenca tutte le politiche di accesso ai dati del tuo account:

aws opensearchserverless list-access-policies --type data

La richiesta restituisce informazioni su tutte le policy di accesso ai dati configurate. Per visualizzare le regole del modello definite in una politica specifica, trova le informazioni sulla politica nel contenuto dell'accessPolicySummarieselemento nella risposta. Prendi nota della name fine type di questa politica e utilizza queste proprietà in una GetAccessPolicyrichiesta per ricevere una risposta con i seguenti dettagli della politica:

{ "accessPolicyDetails": [ { "type": "data", "name": "my-policy", "policyVersion": "MTY2NDA1NDE4MDg1OF8x", "description": "My policy", "policy": "[{\"Rules\":[{\"ResourceType\":\"collection\",\"Resource\":[\"collection/autopartsinventory\",\"collection/sales*\"],\"Permission\":[\"aoss:UpdateCollectionItems\"]},{\"ResourceType\":\"index\",\"Resource\":[\"index/autopartsinventory/*\",\"index/salesorders/orders*\"],\"Permission\":[\"aoss:ReadDocument\",\"aoss:DescribeIndex\"]}],\"Principal\":[\"arn:aws:iam::123456789012:user/Shaheen\"]}]", "createdDate": 1664054180858, "lastModifiedDate": 1664054180858 } ] }

Puoi includere filtri di risorse per limitare i risultati alle policy che contengono raccolte o indici specifici:

aws opensearchserverless list-access-policies --type data --resource "index/autopartsinventory/*"

Per visualizzare i dettagli su una politica specifica, utilizzare il GetAccessPolicycomando.

Aggiornamento delle policy di accesso ai dati

Quando aggiorni una policy di accesso ai dati, vengono interessate anche tutte le altre raccolte associate. Per aggiornare una politica di accesso ai dati nella console OpenSearch Serverless, scegli Controllo dell'accesso ai dati, seleziona la politica da modificare e scegli Modifica. Apporta le modifiche necessarie, quindi scegli Save (Salva).

Per aggiornare una politica di accesso ai dati utilizzando l'API OpenSearch Serverless, invia una UpdateAccessPolicy richiesta. È necessario includere una versione della policy, che è possibile recuperare utilizzando i comandi ListAccessPolicies o GetAccessPolicy. L'inclusione della versione più recente delle policy garantisce di non sovrascrivere inavvertitamente una modifica apportata da qualcun altro.

La seguente UpdateAccessPolicyrichiesta aggiorna una politica di accesso ai dati con un nuovo documento JSON di policy:

aws opensearchserverless update-access-policy \ --name sales-inventory \ --type data \ --policy-version MTY2NDA1NDE4MDg1OF8x \ --policy file://my-new-policy.json

Potrebbero verificarsi alcuni minuti di ritardo tra l'aggiornamento della policy e il momento in cui vengono applicate le nuove autorizzazioni.

Eliminazione delle policy di accesso ai dati

Quando si elimina una policy di accesso ai dati, tutte le raccolte associate perdono l'accesso definito nella policy stessa. Prima di eliminare una policy, assicurati che i tuoi utenti IAM e SAML abbiano l'accesso appropriato alla raccolta. Per eliminare una policy nella console OpenSearch Serverless, seleziona la policy e scegli Elimina.

Puoi anche usare il DeleteAccessPolicycomando:

aws opensearchserverless delete-access-policy --name my-policy --type data

Accesso ai dati tra account

Sebbene non sia possibile creare una politica di accesso ai dati con identità o raccolte tra più account, puoi comunque configurare l'accesso su più account con l'opzione Assumi ruolo. Ad esempio, se account-a possiede una raccolta a cui account-b deve accedere, l'utente di account-b può assumere un ruolo in. account-a Il ruolo deve disporre delle autorizzazioni IAM aoss:APIAccessAll ed aoss:DashboardsAccessAll essere incluso nella politica di accesso ai dati suaccount-a.