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à.
Gestione di CMK tramite API
Questo argomento descrive come creare e aggiornare i CMK KMS utilizzando le API di Amazon MSF. Per seguire le procedure descritte in questo argomento, devi disporre dell'autorizzazione per gestire la chiave KMS e l'applicazione Amazon MSF. Le procedure descritte in questo argomento utilizzano una politica chiave permissiva, utilizzata solo a scopo dimostrativo e di test. Non è consigliabile utilizzare una politica chiave così permissiva per i carichi di lavoro di produzione. Negli scenari reali per i carichi di lavoro di produzione, i ruoli, le autorizzazioni e i flussi di lavoro sono isolati.
In questa pagina
Crea e assegna chiavi KMS
Prima di iniziare, crea una chiave KMS. Per informazioni sulla creazione di una chiave KMS, consulta Create a KMS nella Developer Guide. AWS Key Management Service
In questa sezione
Crea una policy chiave KMS
Per utilizzare CMK in Amazon MSF, devi aggiungere i seguenti principi di servizio alla tua policy chiave: e. kinesisanalytics.amazonaws.com infrastructure.kinesisanalytics.amazonaws.com Amazon MSF utilizza questi principi di servizio per la convalida e l'accesso alle risorse. Se non includi questi principi di servizio, Amazon MSF rifiuta la richiesta.
La seguente politica chiave KMS consente ad Amazon MSF di utilizzare un CMK per l'applicazione,. MyCmkApplication Questa politica concede le autorizzazioni necessarie sia al Operator ruolo che ai responsabili del servizio Amazon MSF e per eseguire le seguenti operazionikinesisanalytics.amazonaws.com: infrastructure.kinesisanalytics.amazonaws.com
-
Descrivi il CMK
-
Crittografa i dati dell'applicazione
-
Decifrare i dati dell'applicazione
-
Crea sovvenzioni per la chiave
L'esempio seguente utilizza i ruoli IAM. Puoi creare la policy chiave per la chiave KMS usando il seguente esempio come modello, ma assicurati di fare quanto segue:
-
Sostituisci
arn:aws:iam::con il123456789012:role/OperatorOperatorruolo. È necessario creare ilOperatorruolo o l'utente prima di creare la policy chiave. In caso contrario, la richiesta non verrà completata. -
Sostituiscilo
arn:aws:kinesisanalytics:us-east-1:con l'ARN della tua applicazione.123456789012:application/MyCmkApplication -
Sostituisci
kinesisanalytics.con un valore di servizio per la regione corrispondente.us-east-1.amazonaws.com -
Sostituisci
123456789012con il tuo account la politica IDKey per CMK. -
Aggiungi dichiarazioni politiche aggiuntive per consentire agli amministratori chiave di amministrare la chiave KMS. In caso contrario, si perderà l'accesso alla gestione della chiave.
Le seguenti dichiarazioni politiche chiave sono ampie perché intendono essere esplicite e mostrano le condizioni richieste da ciascuna azione.
{ "Version":"2012-10-17", "Id": "MyMsfCmkApplicationKeyPolicy", "Statement": [ { "Sid": "AllowOperatorToDescribeKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/Operator" }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "kinesisanalytics.us-east-1.amazonaws.com" } } }, { "Sid": "AllowOperatorToConfigureAppToUseKeyForApplicationState", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/Operator" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:kinesisanalytics:arn": "arn:aws:kinesisanalytics:us-east-1:123456789012:application/MyCmkApplication", "kms:ViaService": "kinesisanalytics.us-east-1.amazonaws.com" } } }, { "Sid": "AllowOperatorToConfigureAppToCreateGrantForRunningState", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/Operator" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:kinesisanalytics:arn": "arn:aws:kinesisanalytics:us-east-1:123456789012:application/MyCmkApplication", "kms:ViaService": "kinesisanalytics.us-east-1.amazonaws.com", "kms:GrantConstraintType": "EncryptionContextSubset" }, "ForAllValues:StringEquals": { "kms:GrantOperations": "Decrypt" } } }, { "Sid": "AllowMSFServiceToDescribeKey", "Effect": "Allow", "Principal": { "Service": [ "kinesisanalytics.amazonaws.com", "infrastructure.kinesisanalytics.amazonaws.com" ] }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:kinesisanalytics:us-east-1:123456789012:application/MyCmkApplication", "aws:SourceAccount": "123456789012" } } }, { "Sid": "AllowMSFServiceToGenerateDataKeyForDurableState", "Effect": "Allow", "Principal": { "Service": "kinesisanalytics.amazonaws.com" }, "Action": [ "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:kinesisanalytics:us-east-1:123456789012:application/MyCmkApplication", "kms:EncryptionContext:aws:kinesisanalytics:arn": "arn:aws:kinesisanalytics:us-east-1:123456789012:application/MyCmkApplication", "aws:SourceAccount": "123456789012" } } }, { "Sid": "AllowMSFServiceToDecryptForDurableState", "Effect": "Allow", "Principal": { "Service": "kinesisanalytics.amazonaws.com" }, "Action": [ "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:kinesisanalytics:arn": "arn:aws:kinesisanalytics:us-east-1:123456789012:application/MyCmkApplication" } } }, { "Sid": "AllowMSFServiceToUseKeyForRunningState", "Effect": "Allow", "Principal": { "Service": [ "infrastructure.kinesisanalytics.amazonaws.com" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:kinesisanalytics:arn": "arn:aws:kinesisanalytics:us-east-1:123456789012:application/MyCmkApplication" } } }, { "Sid": "AllowMSFServiceToCreateGrantForRunningState", "Effect": "Allow", "Principal": { "Service": [ "infrastructure.kinesisanalytics.amazonaws.com" ] }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:kinesisanalytics:arn": "arn:aws:kinesisanalytics:us-east-1:123456789012:application/MyCmkApplication", "kms:GrantConstraintType": "EncryptionContextSubset" }, "ForAllValues:StringEquals": { "kms:GrantOperations": "Decrypt" } } } ] }
Autorizzazioni dell'operatore del ciclo di vita dell'applicazione (chiamante API)
La seguente politica IAM garantisce che l'operatore del ciclo di vita dell'applicazione disponga delle autorizzazioni necessarie per assegnare una chiave KMS all'applicazione,. MyCmkApplication
Aggiorna un'applicazione esistente per utilizzare CMK
In Amazon MSF, puoi applicare una policy CMK a un'applicazione esistente che utilizza Chiavi di proprietà di AWS (AOKs).
Per impostazione predefinita, Amazon MSF utilizza AOKs per crittografare tutti i dati in uno storage temporaneo (storage di applicazioni in esecuzione) e duraturo (storage di applicazioni durevole). Ciò significa che tutti i dati soggetti a un checkpoint o a un'istantanea di Flink sono crittografati utilizzando AOKs per impostazione predefinita. Quando si sostituisce l'AOK con un CMK, i nuovi checkpoint e le istantanee vengono crittografati con CMK. Tuttavia, le istantanee storiche rimarranno crittografate con l'AOK.
Per aggiornare un'applicazione esistente per utilizzare CMK
-
Crea un file JSON con la seguente configurazione.
Assicurati di sostituire il valore di con
CurrentApplicationVersionIdil numero di versione corrente dell'applicazione. È possibile ottenere il numero di versione corrente dell'applicazione, utilizzando DescribeApplication.In questa configurazione JSON, ricordati di sostituire i
samplevalori con i valori effettivi.{ "ApplicationName": "MyCmkApplication", "CurrentApplicationVersionId":1, "ApplicationConfigurationUpdate": { "ApplicationEncryptionConfigurationUpdate": { "KeyTypeUpdate": "CUSTOMER_MANAGED_KEY", "KeyIdUpdate": "arn:aws:kms:us-east-1:" } } }123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab -
Salva questo file. Ad esempio, salvalo con il nome
enable-cmk.json. -
Eseguite il AWS CLI comando update-application come illustrato nell'esempio seguente. In questo comando, fornisci il file di configurazione JSON creato nei passaggi precedenti come argomento del file.
aws kinesisanalyticsv2 update-application \ --cli-input-json file://enable-cmk.json
La configurazione precedente è accettata per aggiornare l'applicazione per l'utilizzo di CMK solo se sono soddisfatte le seguenti condizioni:
-
Il chiamante dell'API dispone di una dichiarazione politica che consente l'accesso alla chiave.
-
La politica chiave ha una dichiarazione politica che consente al chiamante dell'API di accedere alla chiave.
-
La politica chiave contiene una dichiarazione politica che consente al responsabile del servizio Amazon MSF, ad esempio,
kinesisanalytics.amazonaws.com.rproxy.goskope.coml'accesso alla chiave.
Torna da CMK a Chiave di proprietà di AWS
Per tornare da CMK a un AOK
-
Crea un file JSON con la seguente configurazione.
In questa configurazione JSON, ricordati di sostituire
samplei valori con i valori effettivi.{ "ApplicationName": "MyCmkApplication", "CurrentApplicationVersionId":1, "ApplicationConfigurationUpdate": { "ApplicationEncryptionConfigurationUpdate": { "KeyTypeUpdate": "AWS_OWNED_KEY" } } } -
Salva questo file. Ad esempio, salvalo con il nome
disable-cmk.json. -
Eseguite il AWS CLI comando update-application come illustrato nell'esempio seguente. In questo comando, fornisci il file di configurazione JSON creato nei passaggi precedenti come argomento del file.
aws kinesisanalyticsv2 update-application \ --cli-input-json file://disable-cmk.json