View a markdown version of this page

Imposta una politica chiave gestita dal cliente - Fondamento Amazon AgentCore

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

Imposta una politica chiave gestita dal cliente

Per utilizzare una chiave gestita dal cliente con AWS Agent Registry, è necessario configurare sia una policy IAM per il committente chiamante sia una policy KMS che consenta al servizio di eseguire operazioni di crittografia e decrittografia.

Prerequisiti

Prima di creare un registro con una chiave gestita dal cliente, assicurati di quanto segue:

  • Hai una chiave KMS di crittografia simmetrica nella stessa AWS regione del registro. Per informazioni sulla creazione di una chiave KMS, consulta Creazione di chiavi nella AWS Key Management Service Developer Guide.

  • La chiamata principale IAM CreateRegistry dispone delle autorizzazioni KMS richieste. Consulta Autorizzazioni IAM richieste.

Autorizzazioni IAM richieste

Per interagire con un registro crittografato, è necessario disporre delle seguenti autorizzazioni sulla chiave KMS:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRegistryCMKAccess", "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:CreateGrant", "kms:GenerateDataKeyWithoutPlaintext", "kms:GenerateDataKey", "kms:Encrypt", "kms:ReEncrypt*", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Condition": { "StringEquals": { "kms:ViaService": "agent-registry.us-east-1.amazonaws.com" } } } ] }

Sostituisci i valori seguenti:

  • Resource— L'ARN della tua chiave KMS.

  • kms:ViaService— Sostituiscilo us-east-1 con la AWS regione del tuo registro.

La kms:ViaService condizione limita le autorizzazioni alle richieste effettuate tramite il servizio AWS Agent Registry, impedendo che tali autorizzazioni vengano utilizzate al di fuori di AWS Agent Registry.

Nota

Devi essere autorizzato a eseguire queste azioni KMS, tramite la tua policy IAM o tramite la policy chiave (vedi). Policy della chiave per una chiave gestita dal cliente Se la tua policy chiave include la dichiarazione politica chiave predefinita che abilita le policy IAM, la policy IAM è sufficiente.

Policy della chiave per una chiave gestita dal cliente

Le sezioni seguenti elencano le dichiarazioni politiche chiave del KMS richieste da AWS Agent Registry. Aggiungete queste dichiarazioni alla vostra policy chiave KMS in modo che il servizio e i principali chiamanti possano utilizzare la chiave. L'aggiunta di dichiarazioni è necessaria quando la policy chiave non include la dichiarazione politica chiave predefinita che abilita le politiche IAM o quando la chiave si trova in un account diverso.

Importante

I blocchi JSON nelle sezioni seguenti sono esempi di singole dichiarazioni politiche, non politiche chiave complete. Non utilizzarli per sostituire la policy chiave KMS esistente. Copia invece le dichiarazioni di cui hai bisogno, in base ai personaggi della tua organizzazione e al ruolo collegato al servizio, e aggiungile alla Statement serie della tua politica chiave esistente. Aggiorna i valori di ogni estratto conto (ID account, regione, ARN del ruolo e ARN del registro) in modo che corrispondano al tuo ambiente prima di salvare la policy.

La politica chiave dovrebbe concedere le autorizzazioni in base ai personaggi del registro dell'organizzazione:

  • Amministratore: crea registri e gestisce la configurazione della crittografia. Esigenze kms:DescribeKey e kms:CreateGrant autorizzazioni. encrypt/decrypt

  • Editore o approvatore: crea e aggiorna i record del registro (scrive e legge i descrittori dei record). Richiede le autorizzazioni di crittografia e decrittografia.

  • Consumer: legge i record di registro e i risultati di ricerca (legge i descrittori dei record). Necessita delle autorizzazioni di decrittografia.

Oltre alle dichiarazioni personali, aggiungete le informazioni in Dichiarazione politica per il ruolo collegato ai servizi modo che AWS Agent Registry possa utilizzare la chiave per vostro conto in fase di esecuzione. Se condividi il registro con altri account della tua AWS organizzazione utilizzando AWS Resource Access Manager (AWS RAM), aggiungi anche ilDichiarazione politica per l'accesso dell'organizzazione tramite AWS RAM.

Nota

Se il tuo ruolo scrive e legge i descrittori dei record (ad esempio, un editore che recupera anche i record), concedi le autorizzazioni di crittografia e decrittografia come mostrato in. Dichiarazione politica per l'editore

Dichiarazione politica per l'amministratore

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRegistryAdminKeyValidation", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RegistryAdminRole" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "agent-registry.us-east-1.amazonaws.com" } } }, { "Sid": "AllowRegistryAdminGrantCreation", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RegistryAdminRole" }, "Action": [ "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "agent-registry.us-east-1.amazonaws.com" }, "Bool": { "kms:GrantIsForAWSResource": "true" } } }, { "Sid": "AllowRegistryAdminCryptoOps", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RegistryAdminRole" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:GenerateDataKey", "kms:Encrypt", "kms:ReEncrypt*", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "agent-registry.us-east-1.amazonaws.com", "kms:EncryptionContext:aws:agent-registry:registry-arn": "arn:aws:agent-registry:us-east-1:111122223333:registry/my-registry-id" } } } ] }
  • AllowRegistryAdminKeyValidation— Consente all'amministratore di convalidare la chiave prima di utilizzarla con un registro.

  • AllowRegistryAdminGrantCreation— Consente all'amministratore di creare concessioni durante la creazione di un registro. La kms:GrantIsForAWSResource condizione garantisce che kms:CreateGrant possa essere utilizzata solo quando un AWS servizio avvia la creazione della concessione per conto del chiamante.

  • AllowRegistryAdminCryptoOps— Consente all'amministratore di crittografare e decrittografare i descrittori dei record, assegnati a un registro specifico tramite un contesto di crittografia.

Dichiarazione politica per l'editore

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRegistryPublisherCryptoOps", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RegistryPublisherRole" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:GenerateDataKey", "kms:Encrypt", "kms:ReEncrypt*", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "agent-registry.us-east-1.amazonaws.com", "kms:EncryptionContext:aws:agent-registry:registry-arn": "arn:aws:agent-registry:us-east-1:111122223333:registry/my-registry-id" } } } ] }
  • AllowRegistryPublisherCryptoOps— Consente agli editori e agli approvatori di crittografare e decrittografare i descrittori dei record. CreateRegistryRecordUpdateRegistryRecordObbligatorio per e.

Dichiarazione politica per i consumatori

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRegistryConsumerDecrypt", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RegistryConsumerRole" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "agent-registry.us-east-1.amazonaws.com", "kms:EncryptionContext:aws:agent-registry:registry-arn": "arn:aws:agent-registry:us-east-1:111122223333:registry/my-registry-id" } } } ] }
  • AllowRegistryConsumerDecrypt— Consente ai consumatori di decrittografare i descrittori dei record. Obbligatorio per e. GetRegistryRecord SearchDiscoverableRegistryRecords

Dichiarazione politica per il ruolo collegato ai servizi

Concedi al ruolo collegato al servizio di AWS Agent Registry l'autorizzazione a utilizzare la chiave in fase di esecuzione. Il servizio utilizza questo ruolo per crittografare e decrittografare i descrittori dei record per conto dell'utente.

L'aggiunta di questa dichiarazione richiede due passaggi ordinati:

  1. Crea prima il ruolo collegato al servizio nel tuo account. AWS Agent Registry non crea il ruolo per te: devi crearlo tu stesso prima di aggiungere la dichiarazione politica chiave del KMS. Usa la AWS CLI:

    aws iam create-service-linked-role --aws-service-name agent-registry.amazonaws.com

    Questo crea il AWSServiceRoleForAgentRegistry ruolo in. arn:aws:iam::<account-id>:role/aws-service-role/agent-registry.amazonaws.com/AWSServiceRoleForAgentRegistry È necessario eseguire questa operazione solo una volta per ogni account.

  2. Quindi aggiungi la seguente dichiarazione alla tua politica chiave KMS. IAM rifiuta qualsiasi policy chiave che faccia riferimento a un principal che non esiste ancora, quindi il ruolo deve essere presente prima di incollare una dichiarazione che lo nomina.

Indirizza l'istruzione ai registri del tuo account utilizzando una wildcard del contesto di crittografia.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRegistrySlrCryptoOps", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/aws-service-role/agent-registry.amazonaws.com/AWSServiceRoleForAgentRegistry" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext", "kms:Encrypt", "kms:ReEncryptFrom", "kms:ReEncryptTo" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:agent-registry:registry-arn": "arn:aws:agent-registry:us-east-1:111122223333:registry/*" } } } ] }
  • AllowRegistrySlrCryptoOps— Consente al ruolo collegato ai servizi di AWS Agent Registry (AWSServiceRoleForAgentRegistry) di crittografare e decrittografare i descrittori dei record per conto dell'utente, trasferiti ai registri del tuo account tramite la condizione. kms:EncryptionContext:aws:agent-registry:registry-arn

Dichiarazione politica per l'accesso dell'organizzazione tramite AWS RAM

Aggiungi questa dichiarazione se condividi un registro crittografato con chiave gestita dal cliente con altri account della tua AWS organizzazione utilizzando AWS Resource Access Manager (RAM).AWS Consente a qualsiasi responsabile dell'organizzazione di decrittografare i descrittori dei record da un registro condiviso con loro. Se non si condivide il registro tramite AWS RAM, questa dichiarazione non è richiesta.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOrganizationDecrypt", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-EXAMPLE1234" } } } ] }
  • AllowOrganizationDecrypt— Consente a qualsiasi responsabile della tua AWS organizzazione di decrittografare i descrittori dei record dai registri che condividi tramite RAM. AWS La aws:PrincipalOrgID condizione limita questa autorizzazione agli account dei membri dell'organizzazione indicata; senza un ID organizzativo corrispondente, non viene concessa nulla. "Principal": "*" I chiamanti necessitano comunque della corrispondente autorizzazione IAM a livello di servizio sul registro condiviso stesso.

Sostituisci i valori nelle dichiarazioni politiche chiave

Sostituisci i seguenti valori in ogni dichiarazione politica chiave:

  • Principal— L'ARN dell'utente o del ruolo IAM per ogni persona. Sostituisci 111122223333 con l'ID del tuo account e i nomi dei ruoli con i tuoi ruoli IAM effettivi. Per la dichiarazione del ruolo collegato al servizio, sostituiscila 111122223333 con l'ID del tuo account; mantieni il percorso del ruolo e il nome (aws-service-role/agent-registry.amazonaws.com/AWSServiceRoleForAgentRegistry) come mostrato: si tratta di un valore fisso e gestito dal servizio.

  • kms:ViaService— Sostituisci us-east-1 con la AWS regione del tuo registro.

  • kms:EncryptionContext:aws:agent-registry:registry-arn— Sostituisci con l'ARN del tuo registro. Per consentire l'accesso a tutti i registri del tuo account, utilizza StringLike con una jolly:. arn:aws:agent-registry:us-east-1:111122223333:registry/*

  • aws:PrincipalOrgID— Nella dichiarazione sulla condivisione della AWS RAM, sostituisci o-EXAMPLE1234 con il tuo AWS ID organizzativo. Puoi trovarlo nella console AWS Organizations oppure eseguirloaws organizations describe-organization --query 'Organization.Id' --output text.