在不使用 AWS CLI 的情况下为远程服务器上的 AWS S3 操作创建帮助程序脚本
在云计算正在成为现代基础设施支柱的世界中,必须高效地访问 S3 等 AWS 服务。但假设您正在某个未安装 AWS CLI 的远程 UNIX 服务器上工作,并且您希望将文件发布到 S3 存储桶。本博客将引导您了解如何创建一个帮助程序脚本,通过使用 IAM 保护访问并自动获取 AWS 凭证来解决此问题。
问题
您正在远程 UNIX 服务器上工作,该服务器将用于执行以下操作:
- 将文件发布到 AWS S3 存储桶。
- 读取和写入S3。 您使用的服务器没有 AWS CLI,手动管理凭证容易出错且效率低下。您需要一个更强大的解决方案来处理以下问题:
- 安全地获取AWS凭证。
- 自动文件上传或下载。
- 消除对 AWS CLI 的依赖。
解决方案概述
解决方案包括:
- 使用具有适当 S3 权限的 IAM 用户。
- 从 AWS 检索访问密钥 ID 和秘密访问密钥的帮助程序脚本。
- 使用这些凭据执行 S3 操作。
- 每 30 天自动轮换一次密钥。
逐步实施
- IAM 配置
创建具有访问 S3 存储桶所需权限的 IAM 用户或角色。以下是 IAM 策略的示例:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:PutObject", "s3:GetObject"], "Resource": "arn:aws:s3:::your-bucket-name/*" } ] }
将 your-bucket-name 替换为您的 S3 存储桶的名称。
将此策略附加到您的 IAM 用户或角色。
部署模板:
使用 AWS 管理控制台或 AWS CLI 部署 CloudFormation 堆栈。例如:
aws cloudformation deploy --template-file template.yaml --stack-name S3AccessStack
检索凭证:
创建堆栈后,您可以检索导出的输出:
aws cloudformation 描述堆栈 --stack-name S3AccessStack
--query "Stacks[0].Outputs[?ExportName=='S3AccessKeyId'].OutputValue" --输出文本
同样,检索秘密访问密钥:
aws cloudformation 描述堆栈 --堆栈名称 S3AccessStack
--query "Stacks[0].Outputs[?ExportName=='S3SecretAccessKey'].OutputValue" --输出文本
- 编写辅助脚本
该脚本实现了以下目标:
- 从安全来源(例如 AWS Secrets Manager 或预配置文件)检索 AWS 凭证。
- 自动化 S3 操作,例如文件上传。
- 每 30 天轮换一次密钥以增强安全性。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:PutObject", "s3:GetObject"], "Resource": "arn:aws:s3:::your-bucket-name/*" } ] }
将此脚本保存为 aws_helper.sh 并授予执行权限
每 30 天运行 ./aws_helper.sh update-credentials 以轮换密钥并更新凭证文件。
该脚本有何帮助
消除 AWS CLI 依赖性:
该脚本使用curl进行S3操作,确保与未安装AWS CLI的环境兼容。
提高安全性:
自动密钥轮换并安全地管理凭据。
自动化:
实现无缝和自动化的 S3 操作,减少手动错误。
可定制:
可以扩展以包含其他 S3 操作,例如删除或列出文件。
扩展脚本
对于更大规模的自动化,请考虑将此脚本与:
集成
AWS SDK:用于更复杂的逻辑。
AWS CloudFormation:以代码形式管理基础设施。
AWS Secrets Manager:安全地管理凭证。
参考
有关以编程方式创建和管理 AWS 资源的文档。
结论
此帮助程序脚本提供了一种轻量级且高效的解决方案,无需 AWS CLI 即可在远程服务器上执行 AWS S3 操作。通过利用 IAM、自动化凭证检索和轮换密钥,它增强了安全性和可靠性。尝试一下并调整它以满足您的特定需求!
以上是AWS 简化:在远程服务器上无需 CLI 即可实现自动化操作的详细内容。更多信息请关注PHP中文网其他相关文章!

本文讨论了Python版本3.10中介绍的新“匹配”语句,该语句与其他语言相同。它增强了代码的可读性,并为传统的if-elif-el提供了性能优势

Python中的功能注释将元数据添加到函数中,以进行类型检查,文档和IDE支持。它们增强了代码的可读性,维护,并且在API开发,数据科学和图书馆创建中至关重要。

本文讨论了Python中的单位测试,其好处以及如何有效编写它们。它突出显示了诸如UNITSEST和PYTEST等工具进行测试。

文章讨论了Python的\ _ \ _ Init \ _ \ _()方法和Self在初始化对象属性中的作用。还涵盖了其他类方法和继承对\ _ \ _ Init \ _ \ _()的影响。

本文讨论了python中@classmethod,@staticmethod和实例方法之间的差异,详细介绍了它们的属性,用例和好处。它说明了如何根据所需功能选择正确的方法类型和DA

Inpython,YouAppendElementStoAlistusingTheAppend()方法。1)useappend()forsingleelements:my_list.append(4).2)useextend()orextend()或= formultiplelements:my_list.extend.extend(emote_list)ormy_list = [4,5,6] .3)useInsert()forspefificpositions:my_list.insert(1,5).beaware


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3汉化版
中文版,非常好用

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

WebStorm Mac版
好用的JavaScript开发工具

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具