Прежде всего, мой вопрос очень похож на this one, но так как я не мог найти «Я тоже!». link, и с 1 января он остался без ответа, я думал, что попрошу здесь. Пожалуйста, дайте мне знать, если это не так.Доступ к ковру AWS S3 с другого аккаунта с использованием ролей
OK, поэтому здесь моя проблема. У меня есть две учетные записи AWS, которые называют их Prod и Audit. В Prod у меня есть много экземпляров EC2, все из которых имеют свои собственные определенные классы IAM. В аудите у меня есть несколько ведер S3.
Что нужно сделать, используя только роли IAM, получить доступ к ведрам S3 в учетной записи аудита с определенных компьютеров с использованием определенных ролей IAM в учетной записи Prod.
Я видел много ответов о групповых политиках, политике ресурсов и о том, что пользователи IAM принимают роли и т. Д., Но, как я уже сказал, я использую роли IAM на экземплярах EC2, нет групп, пользователей и т. Д.
Я не хочу иметь учетные данные нигде в любом из экземпляров, ala AWS Best Practices.
Это возможно? Есть ли другой безопасный способ сделать это без привлечения пользователей или учетных данных? Любая помощь очень ценится, спасибо!
Примечание:
Приложение работает на EC2 случаях Prod, что я пытаюсь разрешить доступ к ведрам аудита S3 является Logstash. Я подтвердил, что настройка работает при нажатии журналов на ведра Prod S3, а не на аудит. Я также пробовал использовать S3 Bucket Policy, и успеха там не было.
модель S3 Ковш политики Я добавил выглядят следующим образом:
{
"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/*"
]
}
]
}
Политика Инлайн прикреплен к IAM роли для экземпляра Прода EC2:
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::<Audit Account ID>:role/ProdLogstashPush"
}
}
Политики прикрепленной к IAM роли в Аудиторский счет:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::logstash.prod.logs/*",
"arn:aws:s3:::logstash.prod.logs"
]
}
]
}
Я в настоящее время пытаюсь использовать fluentd/td-agent, потому что я думаю, что это для sts: AssumeRole, который теоретически позволит этой установке работать.
Dean
Да, правильная вещь, чтобы сделать это, чтобы повысить этот вопрос и добавить комментарий. но у вас нет доверия к этому. :(так что это следующая лучшая вещь. –