在雲端運算正在成為現代基礎設施支柱的世界中,必須有效率地存取 S3 等 AWS 服務。但假設您正在某個未安裝 AWS CLI 的遠端 UNIX 伺服器上工作,並且您希望將檔案發佈到 S3 儲存桶。本部落格將引導您了解如何建立一個幫助程式腳本,透過使用 IAM 保護存取並自動取得 AWS 憑證來解決此問題。
您正在遠端 UNIX 伺服器上工作,該伺服器將用於執行以下操作:
解決方案包括:
逐步實施
建立具有存取 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" --輸出文字
此腳本實現了以下目標:
{ "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中文網其他相關文章!