Esempi di policy basate su identità AWS Serverless Application Repository - AWS Serverless Application Repository

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

Esempi di policy basate su identità AWS Serverless Application Repository

Per impostazione predefinita, gli utenti e i ruoli IAM non dispongono dell'autorizzazione per creare o modificare risorse AWS Serverless Application Repository. Inoltre, non sono in grado di eseguire attività utilizzando la AWS Management Console, AWS CLI o un'API AWS. Un amministratore IAM deve creare policy IAM che concedono a utenti e ruoli l'autorizzazione per eseguire operazioni API specifiche sulle risorse specificate di cui hanno bisogno. L'amministratore deve quindi allegare queste policy a utenti o IAM che richiedono tali autorizzazioni.

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

Best practice delle policy

Le policy basate su identità sono molto efficaci. Determinano se qualcuno può creare, accedere o eliminare risorse AWS Serverless Application Repository nell'account. Queste operazioni possono comportare costi aggiuntivi per l'account AWS. Quando crei o modifichi policy basate su identità, segui queste linee guida e suggerimenti:

  • Assegna il privilegio minimo: quando crei policy personalizzate, concedi solo le autorizzazioni indispensabili per eseguire un'attività. Inizia con un set di autorizzazioni minimo e concedi autorizzazioni aggiuntive quando necessario. Questo è più sicuro che iniziare con autorizzazioni che siano troppo permissive e cercare di limitarle in un secondo momento. Per ulteriori informazioni, consulta Assegnare il privilegio minimo nella Guida per l'utente di IAM.

  • Abilita MFA per operazioni sensibili: per una maggiore sicurezza, richiedi agli utenti IAM di utilizzare l'autenticazione a più fattori (MFA) per accedere a risorse sensibili o ad operazioni API. Per ulteriori informazioni, consultare Utilizzo dell'autenticazione a più fattori (MFA) in AWS nella Guida per l'utente di IAM.

  • Utilizza le condizioni della policy per ulteriore sicurezza: per quanto possibile, definisci le condizioni per cui le policy basate su identità consentono l'accesso a una risorsa. Ad esempio, è possibile scrivere condizioni per specificare un intervallo di indirizzi IP consentiti dai quali deve provenire una richiesta. È anche possibile scrivere condizioni per consentire solo le richieste all'interno di un intervallo di date o ore specificato oppure per richiedere l'utilizzo di SSL o MFA. Per ulteriori informazioni, consulta Elementi delle policy JSON IAM: Condition nella Guida per l'utente IAM.

Utilizzo della console AWS Serverless Application Repository

La console AWS Serverless Application Repository fornisce un ambiente integrato per scoprire e gestire le applicazioni AWS Serverless Application Repository. Nella console sono inoltre disponibili funzionalità e flussi di lavoro che spesso richiedono autorizzazioni per gestire un'applicazione AWS Serverless Application Repository, oltre alle autorizzazioni specifiche dell'API indicate in AWS Serverless Application RepositoryAutorizzazioni API: Riferimento a operazioni e risorse.

Per ulteriori informazioni sulle autorizzazioni necessarie per utilizzare la console AWS Serverless Application Repository, consulta Esempi di policy gestite dal cliente.

Consenti agli utenti di visualizzare le loro autorizzazioni

Questo esempio mostra in che modo è possibile creare una policy che consente agli utenti IAM di visualizzare le policy inline e gestite che sono allegate alla relativa identità utente. Questa policy include le autorizzazioni per completare questa operazione sulla console o a livello di codice utilizzando AWS CLI o l'API AWS.

{ "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": "*" } ] }

Esempi di policy gestite dal cliente

Negli esempi di questa sezione viene fornito un gruppo di policy di esempio che è possibile collegare a un utente. Se non hai familiarità con la creazione di policy, è opportuno creare prima un utente IAM nell'account in uso e collegare in seguito le policy all'utente. Inoltre puoi utilizzare questi esempi per creare una singola policy personalizzata che includa le autorizzazioni per eseguire più operazioni e quindi collegarla all'utente.

Per ulteriori informazioni su come allegare policy agli utenti, consulta Aggiungere autorizzazioni a un utente nella Guida per l'utente IAM.

Esempio publisher 1: permettere a un publisher di elencare le applicazioni

Per visualizzare gli elementi della console, un utente IAM dell'account deve disporre delle autorizzazioni per l'operazione serverlessrepo:ListApplications. Quando concedi queste autorizzazioni, la console può mostrare l'elenco delleAWS Serverless Application Repository applicazioni nell'AWSaccount creato nellaAWS regione specifica a cui appartiene l'utente.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListExistingApplications", "Effect": "Allow", "Action": [ "serverlessrepo:ListApplications" ], "Resource": "*" } ] }

 

Esempio publisher 2: permettere a un publisher di visualizzare i dettagli di un'applicazione o della versione dell'applicazione

Un utente può selezionare un'applicazione AWS Serverless Application Repository e visualizzarne i dettagli. Tali dettagli includono l'autore, la descrizione, le versioni e altre informazioni di configurazione. Per eseguire questa operazione, l'utente necessita di autorizzazioni per le operazioni API serverlessrepo:GetApplication e serverlessrepo:ListApplicationVersions per AWS Serverless Application Repository.

Nel seguente esempio, queste autorizzazioni sono concesse per l'applicazione specifica il cui Amazon Resource Name (ARN) è specificato come valore Resource.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewApplication", "Effect": "Allow", "Action": [ "serverlessrepo:GetApplication", "serverlessrepo:ListApplicationVersions" ], "Resource": "arn:aws:serverlessrepo:region:account-id:applications/application-name" } ] }

 

Esempio publisher 3: permettere a un publisher di creare un'applicazione o una versione dell'applicazione

Se vuoi concedere a un utente le autorizzazioni per creare applicazioni AWS Serverless Application Repository, devi consentire le autorizzazioni alle operazioni serverlessrepo:CreateApplication e serverlessrepo:CreateApplicationVersions come indicato nella seguente policy.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateApplication", "Effect": "Allow", "Action": [ "serverlessrepo:CreateApplication", "serverlessrepo:CreateApplicationVersion", ], "Resource": "*" } ] }

 

Esempio publisher 4: permettere a un publisher di creare una policy dell'applicazione per condividerla con altri

Affinché gli utenti condividano le applicazioni con gli altri, è necessario concedere loro le autorizzazioni per creare le policy delle applicazioni, come indicato nella seguente policy.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ShareApplication", "Effect": "Allow", "Action": [ "serverlessrepo:PutApplicationPolicy", "serverlessrepo:GetApplicationPolicy", ], "Resource": "*" } ] }

 

Esempio consumatore 1: permettere a un consumatore di cercare le applicazioni

Affinché i consumatori cerchino le applicazioni, devi concedere loro le seguenti autorizzazioni.

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

 

Esempio consumatore 2: permettere a un consumatore di visualizzare i dettagli di un'applicazione

Un utente può selezionare un'applicazione AWS Serverless Application Repository e visualizzarne i dettagli, ad esempio l'autore, la descrizione, le versioni e altre informazioni di configurazione. Per eseguire queste operazioni, l'utente deve disporre delle autorizzazioni per le seguenti operazioni AWS Serverless Application Repository.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewApplication", "Effect": "Allow", "Action": [ "serverlessrepo:GetApplication", "serverlessrepo:ListApplicationVersions" ], "Resource": "*" } ] }

 

Esempio consumatore 3: permettere a un consumatore di distribuire un'applicazione

Affinché i clienti distribuiscano le applicazioni, è necessario concedere loro le autorizzazioni a eseguire una serie di operazioni. La policy seguente fornisce ai clienti le autorizzazioni necessarie.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DeployApplication", "Effect": "Allow", "Action": [ "serverlessrepo:CreateCloudFormationChangeSet", "cloudformation:CreateChangeSet", "cloudformation:ExecuteChangeSet", "cloudformation:DescribeStacks" ], "Resource": "*" } ] }
Nota

La distribuzione di un'applicazione potrebbe richiedere le autorizzazioni per l'utilizzo diAWS risorse aggiuntive. PoichéAWS Serverless Application Repository utilizza lo stesso meccanismo di distribuzione sottostante diAWS CloudFormation, vedere Controllare l'accesso con laAWS Identity and Access Management per ulteriori informazioni. Per assistenza con i problemi di distribuzione relativi alle autorizzazioni, consulta Risoluzione dei problemi: autorizzazioni IAM insufficienti.

Esempio consumatore 4: negare l'accesso agli asset di distribuzione

Quando un'applicazione è condivisa privatamente con unAWS account, per impostazione predefinita, tutti gli utenti di quell'account possono accedere alle risorse di distribuzione di tutti gli altri utenti dello stesso account. La seguente politica impedisce agli utenti di un account di accedere alle risorse di distribuzione, che sono archiviate nel bucket Amazon S3 per ilAWS Serverless Application Repository.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyDeploymentAssetAccess", "Effect": "Deny", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::awsserverlessrepo-changesets*/*" ] } ] }

Esempio consumatore 5: impedire a un consumatore la ricerca e la distribuzione di applicazioni pubbliche

È possibile impedire agli utenti di eseguire determinate operazioni sulle applicazioni.

La seguente policy si applica alle applicazioni pubbliche impostando serverlessrepo:applicationType come public. Impedisce agli utenti di eseguire una serie di operazioni impostando Effect come Deny. Per ulteriori informazioni sulle chiavi di condizione disponibili AWS Serverless Application Repository, consulta Operazioni, risorse e chiavi di condizione per AWS Serverless Application Repository.

{ "Version": "2012-10-17", "Statement": [ { "Condition": { "StringEquals": { "serverlessrepo:applicationType": "public" } }, "Action": [ "serverlessrepo:SearchApplications", "serverlessrepo:GetApplication", "serverlessrepo:CreateCloudFormationTemplate", "serverlessrepo:CreateCloudFormationChangeSet", "serverlessrepo:ListApplicationVersions", "serverlessrepo:ListApplicationDependencies" ], "Resource": "*", "Effect": "Deny" } ] }
Nota

Questa dichiarazione politica può essere utilizzata anche come politica di controllo dei servizi e applicata a un'AWSorganizzazione. Per ulteriori informazioni sui criteri di controllo del servizio, vedere Service Control Policy nella Guida per l'AWS Organizationsutente.