首页 >后端开发 >Python教程 >AWS 简化:在远程服务器上无需 CLI 即可实现自动化操作

AWS 简化:在远程服务器上无需 CLI 即可实现自动化操作

Susan Sarandon
Susan Sarandon原创
2025-01-04 17:54:39886浏览

AWS Simplified: Automate Operations Without CLI on Remote Server

在不使用 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 天自动轮换一次密钥。

逐步实施

  1. 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" --输出文本

  1. 编写辅助脚本

该脚本实现了以下目标:

  • 从安全来源(例如 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:安全地管理凭证。
参考

docs.aws.amazon.com




有关以编程方式创建和管理 AWS 资源的文档。

结论

此帮助程序脚本提供了一种轻量级且高效的解决方案,无需 AWS CLI 即可在远程服务器上执行 AWS S3 操作。通过利用 IAM、自动化凭证检索和轮换密钥,它增强了安全性和可靠性。尝试一下并调整它以满足您的特定需求!

以上是AWS 简化:在远程服务器上无需 CLI 即可实现自动化操作的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn