Policy basate su risorse - AWS Secrets Manager

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

Policy basate su risorse

In una policy basata sulle risorse, si specifica chi può accedere al segreto e le azioni che è possibile eseguire sul segreto. Le policy basate su risorse possono essere utilizzate per:

  • Concedre l'accesso a più utenti o ruoli ad un singolo segreto.

  • Concedi l'accesso a utenti o ruoli in altri AWS account.

Quando alleghi una policy basata sulle risorse a un segreto nella console, Secrets Manager utilizza il motore di ragionamento automatico Zelkova e il API ValidateResourcePolicy per impedirti di concedere a un'ampia gamma di responsabili l'accesso ai tuoi segreti. IAM In alternativa, puoi chiamare il con il parametro da o. PutResourcePolicy API BlockPublicPolicy CLI SDK

Importante

La convalida della politica delle risorse e il BlockPublicPolicy parametro aiutano a proteggere le risorse impedendo che l'accesso pubblico venga concesso attraverso le politiche relative alle risorse direttamente collegate ai segreti. Oltre a utilizzare queste funzionalità, esamina attentamente le seguenti politiche per verificare che non garantiscano l'accesso pubblico:

  • Politiche basate sull'identità allegate ai AWS principali associati (ad esempio, ruoli) IAM

  • Politiche basate sulle risorse allegate alle AWS risorse associate (ad esempio, () chiavi) AWS Key Management Service AWS KMS

Per rivedere le autorizzazioni relative ai tuoi segreti, consulta. Determinazione di chi ha le autorizzazioni per i segreti

Come visualizzare, modificare o eliminare la policy di risorse per un segreto (console)
  1. Apri la console Secrets Manager all'indirizzo https://console.aws.amazon.com/secretsmanager/.

  2. Dall'elenco dei segreti, scegli il segreto.

  3. Nella pagina dei dettagli del segreto, nella sezione Panoramica, nella sezione Autorizzazioni risorse, scegli Modifica autorizzazioni.

  4. Nel campo Codice, eseguire una delle operazioni seguenti, quindi scegliere Save (Salva):

    • Per allegare o modificare una policy delle risorse, immettere la policy.

    • Per eliminare la policy, deselezionare il campo del codice.

AWS CLI

Esempio Recupero di una politica sulle risorse

L'esempio di get-resource-policy seguente mostra come recuperare la policy basata su risorse collegata a un segreto.

aws secretsmanager get-resource-policy \ --secret-id MyTestSecret
Esempio Eliminazione di una policy sulle risorse

L'esempio di delete-resource-policy seguente mostra come eliminare la policy basata su risorse collegata a un segreto.

aws secretsmanager delete-resource-policy \ --secret-id MyTestSecret
Esempio Aggiunta di una policy sulle risorse

L'esempio di put-resource-policy seguente mostra come aggiungere una policy di autorizzazioni a un segreto, verificando innanzitutto che la policy non fornisca un accesso ampio al segreto. La policy viene letta da un file. Per ulteriori informazioni, consulta Caricamento AWS CLI dei parametri da un file nella Guida AWS CLI per l'utente.

aws secretsmanager put-resource-policy \ --secret-id MyTestSecret \ --resource-policy file://mypolicy.json \ --block-public-policy

Contenuto di mypolicy.json.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/MyRole" }, "Action": "secretsmanager:GetSecretValue", "Resource": "*" } ] }

AWS SDK

Per recuperare la policy collegata a un segreto, utilizzare GetResourcePolicy.

Per eliminare una policy collegata a un segreto, utilizzare DeleteResourcePolicy.

Per collegare una policy a un segreto, utilizzare PutResourcePolicy. Se è già associata una policy, il comando la sostituisce con la nuova policy. La politica deve essere formattata come testo JSON strutturato. Vedi la struttura del documento JSON politico.

Per ulteriori informazioni, consulta AWS SDKs.

Esempi

Esempio: Autorizzazione per recuperare valori segreti individuali

Per concedere il permesso di recuperare valori segreti, è possibile allegare policy a segreti o identità. Per informazioni sul tipo di criterio da utilizzare, vedere Policy basate su identità e policy basate su risorse. Per informazioni sul collegamento di una policy a un'identità, vedere Policy basate su risorse e Policy basate su identità.

Questo esempio è utile quando si desidera concedere l'accesso a un singolo segreto a più utenti o ruoli. Per concedere l'autorizzazione a recuperare un gruppo di segreti in una API chiamata batch, vedereEsempio: autorizzazione a recuperare un gruppo di valori segreti in un batch.

Esempio Leggi un segreto

È possibile concedere l'accesso a un segreto allegando a tale segreto la policy seguente.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountId:role/EC2RoleToAccessSecrets" }, "Action": "secretsmanager:GetSecretValue", "Resource": "*" } ] }

Esempio: autorizzazioni e VPCs

Se devi accedere a Secrets Manager dall'interno di unVPC, puoi assicurarti che le richieste a Secrets Manager provengano VPC da una condizione nelle tue politiche di autorizzazione. Per ulteriori informazioni, consulta Limita le richieste in base alle condizioni dell'VPCendpoint e Utilizzo di un AWS Secrets Manager VPC endpoint.

Assicurati che le richieste di accesso al segreto provenienti da altri AWS servizi provengano anche daVPC, altrimenti questa politica negherà loro l'accesso.

Esempio Richiedi che le richieste arrivino da un endpoint VPC

La seguente politica consente a un utente di eseguire operazioni di Secrets Manager solo quando la richiesta arriva attraverso l'VPCendpoint. vpce-1234a5678b9012c.

{ "Id": "example-policy-1", "Version": "2012-10-17", "Statement": [ { "Sid": "RestrictGetSecretValueoperation", "Effect": "Deny", "Principal": "*", "Action": "secretsmanager:GetSecretValue", "Resource": "*", "Condition": { "StringNotEquals": { "aws:sourceVpce": "vpce-1234a5678b9012c" } } } ] }
Esempio Richiedi che le richieste provengano da un VPC

La seguente politica consente ai comandi di creare e gestire segreti solo quando provengono da vpc-12345678. Inoltre, la policy consente alle operazioni che utilizzano l'accesso al valore criptato segreto solo quando provengono le richiestevpc-2b2b2b2b. È possibile utilizzare una politica come questa se si esegue un'applicazione in unaVPC, ma se ne utilizza una seconda, isolata VPC per le funzioni di gestione.

{ "Id": "example-policy-2", "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAdministrativeActionsfromONLYvpc-12345678", "Effect": "Deny", "Principal": "*", "Action": [ "secretsmanager:Create*", "secretsmanager:Put*", "secretsmanager:Update*", "secretsmanager:Delete*", "secretsmanager:Restore*", "secretsmanager:RotateSecret", "secretsmanager:CancelRotate*", "secretsmanager:TagResource", "secretsmanager:UntagResource" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:sourceVpc": "vpc-12345678" } } }, { "Sid": "AllowSecretValueAccessfromONLYvpc-2b2b2b2b", "Effect": "Deny", "Principal": "*", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:sourceVpc": "vpc-2b2b2b2b" } } } ] }

Esempio: Principale del servizio

Se la policy relativa alle risorse allegata al tuo segreto include un AWS service principal, ti consigliamo di utilizzare le chiavi aws: SourceArn e aws: SourceAccount global condition. I valori ARN e dell'account sono inclusi nel contesto di autorizzazione solo quando una richiesta arriva a Secrets Manager da un altro AWS servizio. Questa combinazione di condizioni evita un potenziale confused deputy scenario (scenario "deputy confused").

Se una risorsa ARN include caratteri non consentiti in una politica delle risorse, non è possibile utilizzare tale risorsa ARN nel valore della chiave di aws:SourceArn condizione. Devi invece utilizzare la chiave di condizione aws:SourceAccount. Per ulteriori informazioni, consulta IAMi requisiti.

I responsabili dei servizi non vengono in genere utilizzati come responsabili in una politica allegata a un segreto, ma alcuni AWS servizi lo richiedono. Per informazioni sulle policy delle risorse che un servizio richiede di allegare a un segreto, consultare la documentazione del servizio.

Esempio Consenti a un servizio di accedere a un segreto utilizzando un service principal
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "service-name.amazonaws.com" ] }, "Action": "secretsmanager:GetSecretValue", "Resource": "*", "Condition": { "ArnLike": { "aws:sourceArn": "arn:aws:service-name::123456789012:*" }, "StringEquals": { "aws:sourceAccount": "123456789012" } } } ] }