2015-12-18 21 views
7

Sto cercando di creare un IAM policy per limitare l'accesso degli utenti a tutte le istanze in uno specifico VPC. Seguendo la politica che ho fatto ma non funzionante.Criteri IAM per limitare gli utenti alle istanze in un VPC specifico

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "Stmt1450441260778", 
      "Action": "ec2:*", 
      "Effect": "Allow", 
      "Resource": "arn:aws:ec2:region:Account_num:vpc/vpc-id" 
     } 
    ] 
} 

ho riempito il corrispondente account_num e vpc-id nella politica.

+0

C'è un errore di battitura in "Risorsa". Hai sbagliato a scrivere "regione". – helloV

+0

@helloV Questo non dovrebbe avere importanza, in quanto ho sostituito la regione con la regione effettiva in cui è stato creato il vpc. –

+0

Siamo spiacenti. Questo è stato digitato in fretta. Questa è l'unica politica collegata all'utente? – helloV

risposta

1

Si desidera limitare l'accesso dell'utente e si è utilizzato l'attributo allow che darà il permesso di accedere all'istanza. È questo il comportamento desiderato?

Se si vuole veramente limitare provare "Effect": "Deny" nella stessa politica.

Tuttavia, se si desidera consentire l'accesso a determinati utenti, ecco come è possibile farlo.

La seguente politica di seguito funziona bene per me in questo caso. Lo uso per gli sviluppatori per limitare l'accesso per fermare le istanze. Puoi aggiungere tutte le autorizzazioni che vuoi nel secondo blocco.

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Effect": "Allow", 
      "Action": "ec2:DescribeInstances*", 
      "Resource": "*" 
     }, 
     { 
      "Effect": "Allow", 
      "Action": [ 
       "ec2:StartInstances*", 
       "ec2:StopInstances*" 
      ], 
      "Resource": "arn:aws:ec2:ap-southeast-1:ACCOUNT_ID:instance/i-32ds2a29" 
     } 
    ] 
} 

ap-southeast-1 è la regione per il mio caso. Per controllare un'istanza in un vpc specifico, puoi semplicemente usare il suo id. Non esiste un arn separato per vpc + instance_id, invece puoi usare arn:aws:ec2:region:account-id:instance/instance-id come ar n refer this.

Allo stesso modo è possibile utilizzare lo stesso criterio per limitare gli utenti in specifici VPC utilizzando arn:aws:ec2:region:account-id:vpc/vpc-id come ARN, l'aggiunta di Azione ec2:* e deny a tutti gli effetti.

+0

Funziona e ho notato che AWS ha un difetto nell'interfaccia utente. Immagino che anche la precedente politica funzionerà. Come anche dopo l'applicazione della politica, l'interfaccia AWS mostra l'opzione di terminare l'istanza che non è consentita nella nostra politica ma. Quando si termina l'istanza, AWS avvisa che non si è autorizzati a eseguire l'azione. –

+0

Non è un difetto ma è di design. Impostando uno dei criteri in aws, l'opzione sulla vista non viene mai disabilitata, mentre ciò che è disabilitato è dalla chiamata api effettuata per eseguire determinate azioni. Lo stesso per tutte le funzionalità. (Mostrano tutte le azioni possibili ma puoi fare solo ciò che ti è permesso). –

+0

yeah @Ankit Kulkarni, capisco che la vista non dovrebbe essere cancellata ma dovrebbe essere disabilitata. L'opzione dovrebbe essere lì per vedere le possibili opzioni disponibili, ma dovrebbe essere disabilitata se l'utente non ha abbastanza autorizzazioni. –