やりたいこと
CloudFrontのディストリビューションで設定しているOAIを確認したい。
マネコンからでも確認はできるが、一つずつ設定を見るのは大変なので、スクリプトを作成しました。
実践
export AWS_PROFILE="your_profile"
aws cloudfront list-distributions \
--query "DistributionList.Items[*].{CF_ID:Id,OAI_ID:Origins.Items[*].S3OriginConfig.OriginAccessIdentity}"
上記コマンドで、アカウント内のディストリビューションIDと、OAI_IDを値にもつ配列は出力できます。
ただちょっとこのままだと見づらいのと、OAIが複数のディストリビューションで使用されていないか確認したかったので以下スクリプトにします。
export AWS_PROFILE="your_profile"
aws cloudfront list-distributions \
--query "DistributionList.Items[*].{CF_ID:Id,OAI_ID:Origins.Items[*].S3OriginConfig.OriginAccessIdentity}" \
| jq -r '.[] | [.CF_ID, (.OAI_ID[] // "-")] | @csv' \
> ./CloudFront-OAI.csv
jq
コマンドで見やすい形に変換して、CSVで出力します。
後はCSVからフィルターかけるなりして使用すれば良いかと思います!
自分のための忘備録
AWS CLIを使用際にjq
を使用することが多いのでメモ。
#jsonを読み込み、データをrow形式(プレーンテキスト)で出力する。
jq -r '.[]
#読み込んだデータの各配列の要素にアクセス。
.[]
#配列内の、CF_ID,OAI_IDを新しく生成した配列に入れる
#// "-") は、OAIが設定されていない場合に、空文字列ではなく"-"が入るようにしている
[.CF_ID, (.OAI_ID[] // "-")]
#上記で生成した配列を、CSV形式で出力
@csv
終わりに
マネコンで自力で確認するより、プログラムささっと書いて円滑に仕事を進めていきたい。。
誰かの参考になれば幸いです。