Amazon Timestream LiveAnalytics per esempi di policy basate sull'identità - Amazon Timestream

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à.

Amazon Timestream LiveAnalytics per esempi di policy basate sull'identità

Per impostazione predefinita, IAM gli utenti e i ruoli non dispongono dell'autorizzazione per creare o modificare Timestream per le risorse. LiveAnalytics Inoltre, non possono eseguire attività utilizzando AWS Management Console, CQLSH AWS CLI, o. AWS API Un IAM amministratore deve creare IAM politiche che concedano a utenti e ruoli l'autorizzazione a eseguire API operazioni specifiche sulle risorse specificate di cui ha bisogno. L'amministratore deve quindi allegare tali politiche agli IAM utenti o ai gruppi che richiedono tali autorizzazioni.

Per informazioni su come creare una politica IAM basata sull'identità utilizzando questi documenti di esempioJSON, consulta Creazione di politiche nella JSON scheda nella Guida per l'utente. IAM

Best practice per le policy

Le politiche basate sull'identità determinano se qualcuno può creare, accedere o eliminare Timestream per le risorse del tuo account. LiveAnalytics Queste azioni possono comportare costi aggiuntivi per l' Account AWS. Quando crei o modifichi policy basate su identità, segui queste linee guida e raccomandazioni:

  • Inizia con le policy AWS gestite e passa alle autorizzazioni con privilegi minimi: per iniziare a concedere autorizzazioni a utenti e carichi di lavoro, utilizza le politiche gestite che concedono le autorizzazioni per molti casi d'uso comuni.AWS Sono disponibili nel tuo. Account AWS Ti consigliamo di ridurre ulteriormente le autorizzazioni definendo politiche gestite dai AWS clienti specifiche per i tuoi casi d'uso. Per ulteriori informazioni, consulta le politiche AWS gestite o le politiche AWS gestite per le funzioni lavorative nella Guida per l'IAMutente.

  • Applica le autorizzazioni con privilegi minimi: quando imposti le autorizzazioni con le IAM politiche, concedi solo le autorizzazioni necessarie per eseguire un'attività. Puoi farlo definendo le azioni che possono essere intraprese su risorse specifiche in condizioni specifiche, note anche come autorizzazioni con privilegi minimi. Per ulteriori informazioni sull'utilizzo per applicare le autorizzazioni, consulta Politiche e autorizzazioni nella Guida IAM per l'utente. IAM IAM

  • Utilizza le condizioni nelle IAM politiche per limitare ulteriormente l'accesso: puoi aggiungere una condizione alle tue politiche per limitare l'accesso ad azioni e risorse. Ad esempio, puoi scrivere una condizione di policy per specificare che tutte le richieste devono essere inviate utilizzandoSSL. È inoltre possibile utilizzare condizioni per concedere l'accesso alle azioni di servizio se vengono utilizzate tramite uno specifico Servizio AWS, ad esempio AWS CloudFormation. Per ulteriori informazioni, consulta Elementi IAM JSON della politica: Condizione nella Guida IAM per l'utente.

  • Usa IAM Access Analyzer per convalidare IAM le tue policy e garantire autorizzazioni sicure e funzionali: IAM Access Analyzer convalida le policy nuove ed esistenti in modo che aderiscano al linguaggio delle IAM policy () e alle best practice. JSON IAM IAMAccess Analyzer fornisce più di 100 controlli delle politiche e consigli pratici per aiutarti a creare policy sicure e funzionali. Per ulteriori informazioni, consulta Convalida delle politiche con IAM Access Analyzer nella Guida per l'utente. IAM

  • Richiedi l'autenticazione a più fattori (MFA): se hai uno scenario che richiede l'utilizzo di IAM utenti o di un utente root Account AWS, attiva questa opzione MFA per una maggiore sicurezza. Per richiedere MFA quando vengono richiamate API le operazioni, aggiungi MFA delle condizioni alle tue politiche. Per ulteriori informazioni, consulta Secure API access with MFA nella Guida IAM per l'utente.

Per ulteriori informazioni sulle best practice inIAM, consulta la sezione Procedure consigliate in materia di sicurezza IAM nella Guida IAM per l'utente.

Utilizzo del Timestream per console LiveAnalytics

Timestream for non LiveAnalytics richiede autorizzazioni specifiche per accedere ad Amazon Timestream per console. LiveAnalytics Hai bisogno almeno delle autorizzazioni di sola lettura per elencare e visualizzare i dettagli sul Timestream per le risorse del tuo account. LiveAnalytics AWS Se crei una politica basata sull'identità più restrittiva delle autorizzazioni minime richieste, la console non funzionerà come previsto per le entità (utenti o ruoli) che applicano tale politica. IAM

Consentire agli utenti di visualizzare le loro autorizzazioni

Questo esempio mostra come è possibile creare una politica che consenta IAM agli utenti di visualizzare le politiche in linea e gestite allegate alla propria identità utente. Questa politica include le autorizzazioni per completare questa azione sulla console o utilizzando o a livello di codice. AWS CLI AWS API

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

Operazioni comuni in Timestream per LiveAnalytics

Di seguito sono riportati alcuni esempi IAM di policy che consentono operazioni comuni in Timestream for service. LiveAnalytics

Consentire tutte le operazioni

Di seguito è riportato un esempio di politica che consente tutte le operazioni in Timestream per. LiveAnalytics

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "timestream:*" ], "Resource": "*" } ] }

Consentire le operazioni SELECT

La seguente politica di esempio consente interrogazioni SELECT in stile C su una risorsa specifica.

Nota

<account_ID>Sostituiscilo con l'ID del tuo account Amazon.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "timestream:Select", "timestream:DescribeTable", "timestream:ListMeasures" ], "Resource": "arn:aws:timestream:us-east-1:<account_ID>:database/sampleDB/table/DevOps" }, { "Effect": "Allow", "Action": [ "timestream:DescribeEndpoints", "timestream:SelectValues", "timestream:CancelQuery" ], "Resource": "*" } ] }

Consentire SELECT operazioni su più risorse

La seguente politica di esempio consente interrogazioni in stile «SELECT-style» su più risorse.

Nota

<account_ID>Sostituiscilo con l'ID del tuo account Amazon.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "timestream:Select", "timestream:DescribeTable", "timestream:ListMeasures" ], "Resource": [ "arn:aws:timestream:us-east-1:<account_ID>:database/sampleDB/table/DevOps", "arn:aws:timestream:us-east-1:<account_ID>:database/sampleDB/table/DevOps1", "arn:aws:timestream:us-east-1:<account_ID>:database/sampleDB/table/DevOps2" ] }, { "Effect": "Allow", "Action": [ "timestream:DescribeEndpoints", "timestream:SelectValues", "timestream:CancelQuery" ], "Resource": "*" } ] }

Consentire le operazioni sui metadati

La seguente politica di esempio consente all'utente di eseguire query sui metadati, ma non consente all'utente di eseguire operazioni di lettura o scrittura di dati effettivi in Timestream for. LiveAnalytics

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "timestream:DescribeEndpoints", "timestream:DescribeTable", "timestream:ListMeasures", "timestream:SelectValues", "timestream:ListTables", "timestream:ListDatabases", "timestream:CancelQuery" ], "Resource": "*" } ] }

Consentire le operazioni INSERT

La seguente politica di esempio consente a un utente di eseguire un'INSERToperazione sull'account database/sampleDB/table/DevOps in<account_id>.

Nota

<account_ID>Sostituiscilo con l'ID del tuo account Amazon.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "timestream:WriteRecords" ], "Resource": [ "arn:aws:timestream:us-east-1:<account_id>:database/sampleDB/table/DevOps" ], "Effect": "Allow" }, { "Action": [ "timestream:DescribeEndpoints" ], "Resource": "*", "Effect": "Allow" } ] }

Consentire CRUD le operazioni

La seguente politica di esempio consente a un utente di eseguire CRUD operazioni in Timestream per. LiveAnalytics

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "timestream:DescribeEndpoints", "timestream:CreateTable", "timestream:DescribeTable", "timestream:CreateDatabase", "timestream:DescribeDatabase", "timestream:ListTables", "timestream:ListDatabases", "timestream:DeleteTable", "timestream:DeleteDatabase", "timestream:UpdateTable", "timestream:UpdateDatabase" ], "Resource": "*" } ] }

Annulla le interrogazioni e seleziona i dati senza specificare le risorse

La seguente politica di esempio consente a un utente di annullare le query ed eseguire Select query sui dati che non richiedono la specifica delle risorse:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "timestream:SelectValues", "timestream:CancelQuery" ], "Resource": "*" } ] }

Creare, descrivere, eliminare e descrivere un database

La seguente politica di esempio consente a un utente di creare, descrivere, eliminare e descrivere un databasesampleDB:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "timestream:CreateDatabase", "timestream:DescribeDatabase", "timestream:DeleteDatabase", "timestream:UpdateDatabase" ], "Resource": "arn:aws:timestream:us-east-1:<account_ID>:database/sampleDB" } ] }

Limita i database elencati per tag {"Owner": "${username}"}

La seguente politica di esempio consente a un utente di elencare tutti i database etichettati con una coppia chiave-valore{"Owner": "${username}"}:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "timestream:ListDatabases" ], "Resource": "arn:aws:timestream:us-east-1:<account_ID>:database/*", "Condition": { "StringEquals": { "aws:ResourceTag/Owner": "${aws:username}" } } } ] }

Elenca tutte le tabelle in un database

La seguente politica di esempio per elencare tutte le tabelle nel databasesampleDB:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "timestream:ListTables" ], "Resource": "arn:aws:timestream:us-east-1:<account_ID>:database/sampleDB/" } ] }

Crea, descrivi, elimina, aggiorna e seleziona in una tabella

La seguente politica di esempio consente a un utente di creare tabelle, descrivere tabelle, eliminare tabelle, aggiornare tabelle ed eseguire Select query sulla tabella DevOps nel databasesampleDB:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "timestream:CreateTable", "timestream:DescribeTable", "timestream:DeleteTable", "timestream:UpdateTable", "timestream:Select" ], "Resource": "arn:aws:timestream:us-east-1:<account_ID>:database/sampleDB/table/DevOps" } ] }

Limita una query per tabella

La seguente politica di esempio consente a un utente di interrogare tutte le tabelle tranne quelle DevOps del databasesampleDB:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "timestream:Select" ], "Resource": "arn:aws:timestream:us-east-1:<account_ID>:database/sampleDB/table/*" }, { "Effect": "Deny", "Action": [ "timestream:Select" ], "Resource": "arn:aws:timestream:us-east-1:<account_ID>:database/sampleDB/table/DevOps" } ] }

Timestream per l'accesso alle LiveAnalytics risorse in base ai tag

Puoi utilizzare le condizioni della tua politica basata sull'identità per controllare l'accesso a Timestream per le risorse basate sui tag. LiveAnalytics Questa sezione fornisce alcuni esempi.

L'esempio seguente mostra come è possibile creare una politica che conceda a un utente le autorizzazioni per visualizzare una tabella se la tabella Owner contiene il valore del nome utente di quell'utente.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadOnlyAccessTaggedTables", "Effect": "Allow", "Action": "timestream:Select", "Resource": "arn:aws:timestream:us-east-2:111122223333:database/mydatabase/table/*", "Condition": { "StringEquals": { "aws:ResourceTag/Owner": "${aws:username}" } } } ] }

Puoi allegare questa politica agli IAM utenti del tuo account. Se un utente denominato richard-roe tenta di visualizzare un flusso temporale per la LiveAnalytics tabella, la tabella deve essere contrassegnata con Owner=richard-roe o. owner=richard-roe In caso contrario, gli viene negato l'accesso. La chiave di tag di condizione Owner corrisponde a Owner e owner perché i nomi delle chiavi di condizione non effettuano la distinzione tra maiuscole e minuscole. Per ulteriori informazioni, consulta Elementi IAM JSON della politica: Condizione nella Guida per l'IAMutente.

La seguente politica concede le autorizzazioni a un utente per creare tabelle con tag se il tag passato nella richiesta ha una chiave Owner e un valore: username

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateTagTableUser", "Effect": "Allow", "Action": [ "timestream:Create", "timestream:TagResource" ], "Resource": "arn:aws:timestream:us-east-2:111122223333:database/mydatabase/table/*", "Condition": { "ForAnyValue:StringEquals": { "aws:RequestTag/Owner": "${aws:username}" } } } ] }

La politica seguente consente l'uso di DescribeDatabase API su qualsiasi database con il env tag impostato su uno dei seguenti odev: test

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowDescribeEndpoints", "Effect": "Allow", "Action": [ "timestream:DescribeEndpoints" ], "Resource": "*" }, { "Sid": "AllowDevTestAccess", "Effect": "Allow", "Action": [ "timestream:DescribeDatabase" ], "Resource": "*", "Condition": { "StringEquals": { "timestream:tag/env": [ "dev", "test" ] } } } ] } { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowTagAccessForDevResources", "Effect": "Allow", "Action": [ "timestream:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/env": [ "test", "dev" ] } } } ] }

Questa politica utilizza una Condition chiave per consentire l'aggiunta o l'aggiunta di un tag con la chiave env e il valore di test o dev a una risorsa. qa

Interrogazioni pianificate

Elenca, elimina, aggiorna, esegui ScheduledQuery

La seguente politica di esempio consente a un utente di elencare, eliminare, aggiornare ed eseguire query pianificate.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "timestream:DeleteScheduledQuery", "timestream:ExecuteScheduledQuery", "timestream:UpdateScheduledQuery", "timestream:ListScheduledQueries", "timestream:DescribeEndpoints" ], "Resource": "*" } ] }

CreateScheduledQuery utilizzando una chiave gestita KMS dal cliente

La seguente politica di esempio consente a un utente di creare una query pianificata crittografata utilizzando una KMS chiave gestita dal cliente; <keyid for ScheduledQuery>.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::123456789012:role/ScheduledQueryExecutionRole" ], "Effect": "Allow" }, { "Action": [ "timestream:CreateScheduledQuery", "timestream:DescribeEndpoints" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "kms:DescribeKey", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-west-2:123456789012:key/<keyid for ScheduledQuery>", "Effect": "Allow" } ] }

DescribeScheduledQuery utilizzando una KMS chiave gestita dal cliente

La seguente politica di esempio consente a un utente di descrivere una query pianificata creata utilizzando una KMS chiave gestita dal cliente; <keyid for ScheduledQuery>.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "timestream:DescribeScheduledQuery", "timestream:DescribeEndpoints" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "kms:Decrypt" ], "Resource": "arn:aws:kms:us-west-2:123456789012:key/<keyid for ScheduledQuery>", "Effect": "Allow" } ] }

Autorizzazioni per il ruolo di esecuzione (utilizzo di una KMS chiave gestita dal cliente per le query pianificate e SSE - KMS per le segnalazioni di errori)

Allega la seguente politica di esempio al IAM ruolo specificato nel ScheduledQueryExecutionRoleArn parametro, CreateScheduledQuery API che utilizza la KMS chiave gestita dal cliente per la crittografia delle query pianificate e la SSE-KMS crittografia per le segnalazioni di errori.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "kms:GenerateDataKey", ], "Resource": "arn:aws:kms:us-west-2:123456789012:key/<keyid for ScheduledQuery>", "Effect": "Allow" }, { "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-west-2:123456789012:key/<keyid for database-1>", "arn:aws:kms:us-west-2:123456789012:key/<keyid for database-n>", "arn:aws:kms:us-west-2:123456789012:key/<keyid for ScheduledQuery>" ], "Effect": "Allow" }, { "Action": [ "sns:Publish" ], "Resource": [ "arn:aws:sns:us-west-2:123456789012:scheduled-query-notification-topic-*" ], "Effect": "Allow" }, { "Action": [ "timestream:Select", "timestream:SelectValues", "timestream:WriteRecords" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "s3:PutObject", "s3:GetBucketAcl" ], "Resource": [ "arn:aws:s3:::scheduled-query-error-bucket", "arn:aws:s3:::scheduled-query-error-bucket/*" ], "Effect": "Allow" } ] }

Ruolo di esecuzione, relazione di fiducia.

Di seguito è riportata la relazione di trust per il IAM ruolo specificato nel ScheduledQueryExecutionRoleArn parametro di CreateScheduledQueryAPI.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "timestream.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

Consenti l'accesso a tutte le interrogazioni pianificate create all'interno di un account

Allega la seguente politica di esempio al IAM ruolo specificato nel ScheduledQueryExecutionRoleArn parametro, of CreateScheduledQueryAPI, per consentire l'accesso a tutte le query pianificate create all'interno di un account Account_ID.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "timestream.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "Account_ID" }, "ArnLike": { "aws:SourceArn": "arn:aws:timestream:us-west-2:Account_ID:scheduled-query/*" } } } ] }

Consenti l'accesso a tutte le query pianificate con un nome specifico

Allega la seguente policy di esempio al IAM ruolo specificato nel ScheduledQueryExecutionRoleArn parametro, of CreateScheduledQueryAPI, per consentire l'accesso a tutte le query pianificate con un nome che inizia con Scheduled_Query_Name, all'interno dell'account Account_ID.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "timestream.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "Account_ID" }, "ArnLike": { "aws:SourceArn": "arn:aws:timestream:us-west-2:Account_ID:scheduled-query/Scheduled_Query_Name*" } } } ] }