Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWS CLIでCMKを沢山作ってみたら 困ったこと
Search
Yuki_Kurono
July 25, 2022
Programming
1
270
AWS CLIでCMKを沢山作ってみたら 困ったこと
Yuki_Kurono
July 25, 2022
Tweet
Share
More Decks by Yuki_Kurono
See All by Yuki_Kurono
今年のre:inventから学ぶこと
yuki_kurono
0
27
re_invent 2023事前勉強会
yuki_kurono
0
55
CloudFormationの運用が 辛くならない方法を本気で考えてみた
yuki_kurono
0
180
CloudFormationで登場したForEachをちゃんと理解してみる
yuki_kurono
0
570
Turnstileのウィジェット モードとは何者か
yuki_kurono
0
380
CodeGuru Security ってなんだ?
yuki_kurono
0
850
えるしってるか CloudFrontはWAFがあっても カスタムエラーレスポンスを返せる
yuki_kurono
0
320
Cloudflare初心者がIaCから基本構成を学んでみた
yuki_kurono
1
500
Terraformのnull_resource ってなに?aws cli が実行できるらしい
yuki_kurono
1
1.3k
Other Decks in Programming
See All in Programming
ASP.NETアプリケーションのモダナイゼーションについて
tomokusaba
0
260
生成AIで知るお願いの仕方の難しさ
ohmori_yusuke
1
120
On-the-fly Suggestions of Rewriting Method Deprecations
ohbarye
3
5.3k
実践Webフロントパフォーマンスチューニング
cp20
45
10k
파급효과: From AI to Android Development
l2hyunwoo
0
160
カウシェで Four Keys の改善を試みた理由
ike002jp
1
130
データベースの技術選定を突き詰める ~複数事例から考える最適なデータベースの選び方~
nnaka2992
0
210
AWS Summit Hong Kong 2025: Reinventing Programming - How AI Transforms Our Enterprise Coding Approach
dwchiang
0
140
By the way Google Cloud Next 2025に行ってみてどうだった
ymd65536
0
130
最速Green Tea 🍵 Garbage Collector
kuro_kurorrr
1
110
LRパーサーはいいぞ
ydah
7
1.3k
Boost Your Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
850
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
42
7.5k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
120
52k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
420
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
GraphQLの誤解/rethinking-graphql
sonatard
71
10k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.8k
Designing for Performance
lara
608
69k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Six Lessons from altMBA
skipperchong
28
3.8k
GraphQLとの向き合い方2022年版
quramy
46
14k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
Transcript
AWS CLIでCMKを沢山作ってみたら 困ったこと 黒野 雄稀 JAWS-UG CLI専門支部 #270R 2022/07/24
自己紹介 名前 黒野 雄稀 AWS歴 ・約3年 ・2022 APN ALL
AWS Certifications Engineer 所属 アイレット株式会社 普段の業務 ・基幹系インフラ構築 ・システム運用構築
背景 CloudTrail皆さん使っていますか? 今回は複数のAWSアカウント(約16アカウント)でCloudTrailの有効化に伴い、 CMKの作成が必要となりました。 コンソールで作るのは流石に大変。。ということでAWS CLIを使ってCMKを作成 してみました。
対象となるリージョン • 東京 • バージニア北部 • シンガポール • フランクフルト •
北京
スクリプト概要
aws-vault設定 ここからスクリプトの中からポイントの部 分に解説を入れていきます。 ※スクリプト全体はQiitaに記載しておき ます。 #スイッチロールの設定を行う。 export SWICHROLE=$ROLE echo $SWICHROLE
shopt -s expand_aliases alias av='aws-vault exec $SWICHROLE --no-session --' #結果出力先ファイルの設定を行う。 export OUTPUT=./result-kms/create/${SWICHROLE}-kms-result-${NOW}.txt #アカウントIDの取得を行う。 ACCOUNT=$(av aws sts get-caller-identity | jq -r .Account) コマンド
キーポリシー ファイル作成 ベースとなるポリシーファイルを 用意して、固有情報(アカウントID、リー ジョン)だけ書き換えを行っています。 echo -e "\U2705KMSキーポリシー作成 " cp
./base-key-policy.json ./key-policy-${SWICHROLE}.json sudo sed -i -e "s/ap-northeast-1/${REGION}/" ./key-policy-${SWICHROLE}.json sudo sed -i -e "s/12345678910/${ACCOUNT}/" ./key-policy-${SWICHROLE}.json コマンド
CMK、エイリアスの 作成 上記で作成した、キーポリシーを元に CMKの作成とエイリアスの作成を行う。 #上記で作成したキーポリシーを使用して、 CKMの作成を行う。 echo -e "\U2705KMSキー作成" KEYID=$(av
aws kms create-key --key-usag ENCRYPT_DECRYPT \ --origin AWS_KMS --policy file://key-policy-${SWICHROLE}.json \ --region $REGION | jq -r .KeyMetadata.KeyId) echo -e "\U2705 KEYID:${KEYID}" #作成したCKMに対して、エイリアスの作成を行う。 echo -e "\U2705エイリアス作成" av aws kms create-alias --alias-name alias/$KEYNAME \ --target-key-id $KEYID --region $REGION コマンド
作成したCMK、 エイリアスの確認 最後に作成したCMKのエイリアスと設定 内容を確認する。 #作成したCKMにエイリアスが作成されて、適切な設定が行われているか確認する。 echo -e "\U2705KMSキー確認" av aws
kms list-aliases --key-id ${KEYID} > $OUTPUT コマンド 実行結果
しかしここで失敗する。。 ・フランクフルトリージョンまで上手くいっていたが、中国で何故かスクリプトが失 敗する。。 ・調べてみるとキーポリシーの作成で以下の様な記述がありました。 { "Version": "2012-10-17", "Id": "Key policy
created by CloudTrail", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456578910:root" }, "Action": "kms:*", "Resource": "*" },
馴染のある方、勘のいい方はお気づきかもしれません。 そう、AWS中国のARNはarn:awsではなくarn:aws-cnでした。 なので、以下の様な処理を追加する必要がありました。 if [ $REGION = "cn-north-1" ]; then
sudo sed -i -e "s/arn:aws/arn:aws-cn/" ./key-policy-${SWICHROLE}.json fi
まとめ • TerraformやCFnでも同じような、落とし穴があると思いますので注意が必要だったなと 思いました。 ◦ 中国など慣れない環境は事前調査大事 • シェルスクリプト自体の知識が浅く、エラーハンドリングが甘いので深堀し ていきた
い。
参考 Qiita: https://qiita.com/kurono/items/b 3362e16a3a396b9b2a7
おまけ 以下の様なコマンドを使用するとbashでユニコードを扱うことができます。 作業してるとテンションが上がります。 echo -e "\U2705KMSキー確認" コマンド 実行結果
ご清聴ありがとうございま した