Привет!
Вчера мой коллега написал статью об использование s3cmd на Windows. Более лёгкого решения вне AWS не найти. Да и привычно, не так ли?
Но вот вспомнилась мне моя статья о PowerShell утилитах от AWS, и возможность использования ролей серверов. И я понял, что внутри AWS из Windows работа с S3, да и со всеми остальными сервисами AWS крайне проста. Об IAM ролях вы можете почитать здесь.
Коротко, роль сервера даёт нам возможность автоматически получать ключи доступа к ресурсам AWS.
Итак, от изобилия ссылок, перейдём к процессу создания роли, ну и работы с ней.
В консоли IAM идём в меню Roles. Далее создаём IAM роль, например с полным доступом к S3:
Выбираем пункт Amazon EC2 — там же будут запускаться наши серверы:
В правах роли выбираем нужный пункт: S3 Full Access:
Последняя проверка, всё ли правильно:
Далее, нам нужно запустить сервер с только что созданной ролью:
Через время, заходим на сервер и заходим в PowerShell. Для того, чтоб получить ключи доступа к AWS от сервера, стоит запустить всего одну команду:
После чего, из профайла сервера загрузятся ключи доступа к AWS с привилегиями IAM роли.
Далее, например, командой Copy-S3Object мы можем скачать файл на диск:
Вот и всё, всё работает без указаний ключей и остальных ненужных приблуд.
PS. Python утилиты awscli работают по такому же принципу. Только никаких дополнительных команд не нужно, всё уже работает из коробки.
Вчера мой коллега написал статью об использование s3cmd на Windows. Более лёгкого решения вне AWS не найти. Да и привычно, не так ли?
Но вот вспомнилась мне моя статья о PowerShell утилитах от AWS, и возможность использования ролей серверов. И я понял, что внутри AWS из Windows работа с S3, да и со всеми остальными сервисами AWS крайне проста. Об IAM ролях вы можете почитать здесь.
Коротко, роль сервера даёт нам возможность автоматически получать ключи доступа к ресурсам AWS.
Итак, от изобилия ссылок, перейдём к процессу создания роли, ну и работы с ней.
В консоли IAM идём в меню Roles. Далее создаём IAM роль, например с полным доступом к S3:
Выбираем пункт Amazon EC2 — там же будут запускаться наши серверы:
В правах роли выбираем нужный пункт: S3 Full Access:
Последняя проверка, всё ли правильно:
Далее, нам нужно запустить сервер с только что созданной ролью:
Через время, заходим на сервер и заходим в PowerShell. Для того, чтоб получить ключи доступа к AWS от сервера, стоит запустить всего одну команду:
PS C:\Users\Administrator> Set-AWSCredentials
После чего, из профайла сервера загрузятся ключи доступа к AWS с привилегиями IAM роли.
Далее, например, командой Copy-S3Object мы можем скачать файл на диск:
Copy-S3Object -SourceBucket MyBucket -SourceKey FileName "C:\FileName"
Вот и всё, всё работает без указаний ключей и остальных ненужных приблуд.
PS. Python утилиты awscli работают по такому же принципу. Только никаких дополнительных команд не нужно, всё уже работает из коробки.