在 AWS CLI 中控制命令輸出 - AWS Command Line Interface

在 AWS CLI 中控制命令輸出

本節介紹控制 AWS Command Line Interface (AWS CLI) 輸出的不同方法。自訂終端中的 AWS CLI 輸出可改善可讀性、簡化指令碼編寫自動化,以及更輕鬆地導覽較大的資料集。

AWS CLI 支援多種輸出格式,包括 jsontext 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 功能來取得所需的輸出。