在 AWS CLI 中控制命令輸出
本節介紹控制 AWS Command Line Interface (AWS CLI) 輸出的不同方法。自訂終端中的 AWS CLI 輸出可改善可讀性、簡化指令碼編寫自動化,以及更輕鬆地導覽較大的資料集。
AWS CLI 支援多種輸出格式,包括 json、text、 yaml 及 table。有些服務的資料具有伺服器端分頁,而 AWS CLI 會為其他分頁選項提供自己的用戶端功能。
最後,AWS CLI 同時具有伺服器端和用戶端篩選,您可以單獨或共同用其來篩選您的 AWS CLI 輸出。
敏感輸出
AWS CLI 的某些操作可能會傳回可能視為敏感的資訊,包括來自環境變數的資訊。此資訊的暴露在某些情況下可能代表安全風險;例如,資訊可能包含在持續整合和持續部署 (CI/CD) 日誌中。因此,當您將此類輸出作為日誌的一部分時,請務必進行審查,並在不需要時抑制輸出。
如需保護敏感資料的其他資訊,請參閱AWS CLI 中的資料保護。
請考慮下列最佳實務:
-
考慮以程式設計方式從秘密存放區擷取秘密,例如 AWS Secrets Manager。
-
檢閱建置日誌的內容,確保其中未包含敏感資訊。考慮輸送到
/dev/null或擷取輸出做為 bash 或 PowerShell 變數等方法來抑制命令輸出。以下是將輸出 (而非錯誤) 重新導向至
/dev/null的 bash 範例:$aws s3 ls > /dev/null如需抑制終端輸出的特定資訊,請參閱您所使用終端的使用者文件。
-
考慮存取日誌,並根據使用案例適當調整存取範圍。
伺服器端與用戶端輸出選項
AWS CLI 同時具有伺服器端和用戶端篩選,您可以單獨或共同用其來篩選您的 AWS CLI 輸出。系統會先處理伺服器端篩選,並傳回用戶端篩選的輸出。服務 API 支援伺服器端篩選。用戶端篩選受使用 --query 參數的 AWS CLI 用戶端支援。
伺服器端輸出選項是 AWS 服務 API 直接支援的功能。篩選或分頁的任何資料不會傳送至用戶端,這會加速 HTTP 回應時間,並改善較大資料集的頻寬。
用戶端輸出選項是由 AWS CLI 建立的功能。所有資料都會傳送到用戶端,然後 AWS CLI 會將顯示的內容進行篩選或分頁。對於較大的資料集,用戶端操作不會節省速度或頻寬。
當伺服器端和用戶端選項一起使用時,會先完成伺服器端操作,然後傳送至用戶端以進行用戶端操作。這會使用伺服器端選項的潛在速度和省下的頻寬,同時使用其他 AWS CLI 功能來取得所需的輸出。