首頁 >後端開發 >Python教學 >AWS 簡化:在遠端伺服器上無需 CLI 即可實現自動化操作

AWS 簡化:在遠端伺服器上無需 CLI 即可實現自動化操作

Susan Sarandon
Susan Sarandon原創
2025-01-04 17:54:39840瀏覽

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
上一篇:CS-第 6 週下一篇:CS-第 6 週