È possibile limitare gli utenti / account AWS a una regione specifica?


24

Eseguiamo numerosi servizi AWS nella regione eu-west-1. Sfortunatamente sembra che molti dei nostri sviluppatori e altri dipendenti che devono creare risorse temporanee dimentichino questo aspetto di AWS e non selezionino questa regione prima di lanciare istanze EC2, creare bucket S3, ecc. Di conseguenza spesso finiscono in la regione us-east-1 poiché sembra essere quella predefinita che AWS utilizza sempre.

Esiste un modo attraverso IAM (o in qualche altro modo) per limitare gli account utente per avviare / creare cose solo all'interno di una regione specifica?

Risposte:


25

Sfortunatamente non puoi farlo a livello globale. Tuttavia, per ogni prodotto AWS che lo supporta, in genere è possibile limitare l'accesso a una determinata regione.

Ad esempio, per EC2, è possibile effettuare le seguenti operazioni:

{
  "Statement":[{
    "Effect":"allow",
    "Action":"RunInstances",
    "Resource":"*",
    "Condition":{
      "StringEquals":{
        "ec2:Region":"us-west-1"
        }
      }
    }
  ]
}

Ovviamente, dovresti emettere anche una denyregola, se del caso.

Ecco la documentazione per quanto sopra.


Perfezionare. Sembra esattamente quello di cui ho bisogno. Grazie!
Bruce P,

5
Invece "Condition": { "condition": {} }dovrebbe indicare"Condition": { "StringEquals": {} }
Jasny - Arnold Daniels il

Che dire di altri servizi come S3?
Yves M.,

7

Usa qualcosa del genere. Questo esempio limita l'accesso a due aree AWS. Modificare se necessario.

{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Deny",
    "Action": "*",
    "Resource": "*",
    "Condition": {
      "StringNotEquals": {
        "aws:RequestedRegion": [
          "eu-central-1",
          "eu-west-1"
        ]
      }
    }
  }]
}

3
Con il nuovo aws:RequestedRegion, questa è la risposta che ora è più rilevante
Majikman,

1
Grazie, con questa politica è possibile utilizzare le politiche disponibili di AWS predefinite e allegare solo questa in linea e limitare efficacemente tutti i servizi.
Lkraider,

7

Dal 25 aprile 2018, AWS ha una risorsa globale aws: RequestedRegion che puoi utilizzare per limitare le regioni a cui un utente può inviare richieste. Questo è indipendente dal fatto che il servizio sia regionale o meno, quindi puoi applicarlo a tutti i servizi.

Blog sulla sicurezza di AWS

Purtroppo non è possibile utilizzarlo nella politica di controllo dei servizi di un'organizzazione per applicarla a un account a livello globale e è necessario allegare la politica a ogni singolo responsabile e verificare che ciò avvenga, se si desidera bloccare un account in determinate aree.


4

La risposta accettata su questa discussione ha dato Syntax Error on Policy. Di seguito ha funzionato per me:

{
"Statement": [
    {
        "Sid": "Stmt1375943389569",
        "Action": "ec2:*",
        "Effect": "Allow",
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "ec2:Region": "eu-central-1"
            }
        }
    }
]

}


3

Se chiedi solo azioni EC2, quindi sì, puoi limitarlo come indicato in altre risposte. Se si tratta di altri servizi, non sono sicuro che tu possa farlo ... ad es. AWS Lambda non sembra avere un lambda:regionche puoi aggiungere a una condizione.


0

Dalle FAQ per AWS IAM :

D: Gli utenti possono essere definiti a livello regionale? Non inizialmente. Gli utenti sono entità globali, come lo è un account AWS oggi. Non è necessario specificare alcuna regione durante la definizione delle autorizzazioni utente. gli utenti sono in grado di utilizzare i servizi AWS in qualsiasi area geografica.


3
Wow. Che risposta scritta male da Amazon. "Non inizialmente." Ciò implica che può essere fatto dopo la creazione dell'account? Ciò significa che AWS non poteva quando è stato lanciato per la prima volta, ma ora può farlo? "Non è necessario specificare alcuna regione durante la definizione delle autorizzazioni utente." Non ho chiesto se fosse richiesto. Ho chiesto se fosse possibile farlo. "gli utenti sono in grado di utilizzare i servizi AWS in qualsiasi area geografica." Apparentemente non più in base a ciò che l'AEAA ha pubblicato sopra. L'istruzione "condition" in IAM consente di limitare alcuni servizi per regione. Grazie lo stesso.
Bruce P,

1
@BruceP - non è una risposta scadente. Va benissimo. Gli utenti sono globali. I privilegi dell'utente possono essere limitati.
EEAA

0

Ho scoperto che funziona meglio (consente di avviare / arrestare / terminare / ecc.) Per concedere l'accesso EC2 completo per un utente a una sola regione - ogni altra regione mostra errori durante qualsiasi tentativo di accesso.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": "*",
            "Effect": "Allow",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "ec2:Region": "us-east-1"
                }
            }
        }
    ]
}

0

Questo funziona per me, ho cercato di creare una politica con il json menzionato come risposta accettata ma non funziona per me.

{
    "Version": "2012-10-17",
    "Statement": [{
        "Action": "ec2:*",
        "Effect": "Allow",
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "ec2:Region": [
                    "us-east-1"
                ]
            }
        }
    }]
}

0

Questa è la soluzione attuale - usando "eu-west-1":

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect"    : "Allow",
            "Action"    : "*",
            "Resource"  : "*",
            "Condition": 
            {
                "StringEquals": {
                    "aws:RequestedRegion": "eu-west-1"
                }
            }
        }
    ]
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.