Per prima cosa, la mia domanda è molto simile a this one, ma poiché non sono riuscito a trovare un "Anche io!" link, ed è stato senza risposta dal 1 ° gennaio, ho pensato che avrei chiesto qui. Per favore fatemi sapere se era la cosa sbagliata da fare.Accesso al bucket AWS S3 da un altro account utilizzando i ruoli
OK, ecco il mio problema. Ho due account AWS, chiamiamoli Prod e Audit. In Prod, ho molte istanze EC2, tutte con i propri specifici ruoli IAM già definiti. In Audit, ho un numero di bucket S3.
Quello che devo essere in grado di fare è, utilizzando solo IAM Ruoli, accedere ai bucket S3 nell'account di controllo da macchine specifiche, utilizzando ruoli IAM specifici, nell'account Prod.
Ho visto molte risposte parlare di Criteri di gruppo, Politiche delle risorse e avere utenti IAM assumere ruoli, ecc., Ma come ho detto, sto usando IAM Ruoli nelle istanze EC2, non ci sono gruppi, utenti, ecc.
Non voglio avere credenziali ovunque su nessuna istanza, ala AWS Best Practices.
Quindi è possibile? C'è un altro modo sicuro per farlo, senza coinvolgere utenti o credenziali? Tutto e molto aiuto molto apprezzato, grazie!
Nota:
L'applicazione in esecuzione sulle istanze EC2 Prod che sto tentando di consentire l'accesso ai secchi Audit S3 è Logstash. Ho confermato che il setup funziona quando si spingono i log verso i bucket Prod S3, solo quelli Audit. Ho anche provato a utilizzare una politica di S3 Bucket senza successo.
La politica benna S3 ho aggiunto è la seguente:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "CrossAccountPolicy",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<Prod Account ID>:root"
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::logstash.prod.logs",
"arn:aws:s3:::logstash.prod.logs/*"
]
}
]
}
La politica Inline attaccato al ruolo IAM per l'istanza Prod EC2:
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::<Audit Account ID>:role/ProdLogstashPush"
}
}
La politica collegata al ruolo IAM in l'account di Audit:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::logstash.prod.logs/*",
"arn:aws:s3:::logstash.prod.logs"
]
}
]
}
attualmente sto provando fluentd/td-agent perché penso che sia una lows for sts: AssumeRole, che in teoria consentirebbe il funzionamento di questa configurazione.
Dean
sì, la cosa giusta da fare è di sviare quella domanda e aggiungere un commento. ma tu non hai il merito di farlo. :(quindi questa è la prossima cosa migliore –