![](/img/trans.png)
[英]How to enable server side encryption for multiple S3 buckets using AWS CLI?
[英]How can i list all the S3 buckets with some specific tag using cli?
我正在嘗試使用環境和服務標簽獲取所有 S3 存儲桶。 我有將近 200 個桶……我該怎么做……請幫幫我
aws s3api list-buckets
上面的命令列出了所有帶有創建日期的存儲桶名稱...如何列出所有帶有特定標簽的存儲桶。 我搜索了很多博客,但我無法獲得獲取帶有標簽的存儲桶的確切命令。我嘗試使用 jq 命令,例如
aws s3api list-buckets | jq .Buckets[].Name
我收到以下錯誤:
Invalid numeric literal at line 2, column 0
我的 aws s3api list-buckets 輸出
2019-01-24T04:53:07.000Z | aws-xxx ||
|| 2019-02-18T18:33:15.000Z | aws-yyy
您應該使用“get-bucket-tagging”api 來獲取與您的存儲桶關聯的標簽。
https://docs.aws.amazon.com/cli/latest/reference/s3api/get-bucket-tagging.html
我在 github 中找到了一個簡單的腳本來完成這項工作。 我希望這對你有用。
如果您的目標是查找具有特定標簽的資源(例如 Amazon EC2 實例、Amazon S3 存儲桶),請查看 什么是 AWS 資源組? :
您可以使用資源組來組織您的 AWS 資源。 資源組可以更輕松地同時管理和自動化大量資源上的任務。 本指南向您展示如何在 AWS 資源組中創建和管理資源組。
您可以通過 AWS resource-groups
CLI 執行此操作
示例: https : //awscli.amazonaws.com/v2/documentation/api/latest/reference/resource-groups/search-resources.html#examples
但是 Web UI 似乎更強大,它由指向每個資源的鏈接和到 csv 的導出選項組成。 https://console.aws.amazon.com/resource-groups/tag-editor/find-resources
我找不到一種明智的方法來做到這一點,我認為您甚至無法通過用戶界面中的標簽進行搜索。
但是你可以做類似的事情
s3_buckets_with_cache() {
local S3CACHE JSONBUCKETS bucketwithtags tags
S3CACHE="${DIR_CACHE}/s3buckets.json"
if [[ ! -f ${S3CACHE} ]]; then
JSONBUCKETS='{"buckets":[]}'
IFS=$'\n'
for bucket in $(aws s3api list-buckets | jq .Buckets[].Name -r); do
tags=$(aws s3api get-bucket-tagging --bucket "${bucket}" 2>/dev/null)
# shellcheck disable=SC2181
[[ "$?" -ne 0 ]] && continue
tags=$(echo "${tags}" | jq -c '.[][] | {(.Key): .Value}' | jq --slurp .)
[[ "${tags}" == "[]" ]] && continue
bucketwithtags="{\"bucket\": \"${bucket}\", \"tags\" : ${tags} }"
JSONBUCKETS=$(echo "${JSONBUCKETS}" | jq ".buckets += [${bucketwithtags}]")
done
echo "${JSONBUCKETS}" >"${S3CACHE}"
fi
cat "${S3CACHE}"
}
然后用
AWS_BUCKET_NAME=$(s3_buckets_with_cache | jq -r '.buckets[]
| select(.tags[].foo == "bar" and .tags[].abc == "xyz") | .bucket')
雖然這沒有緩存失效或類似的東西,但您可以輕松檢查文件的時間戳並以這種方式使其失效。
而且我只添加了緩存,因為我必須為它們的標簽抓取 3000 個存儲桶,而且我不想每次需要按標簽獲取存儲桶名稱時都這樣做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.