Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
豊洲会_20240828
Search
齋藤友宏
August 28, 2024
23
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
豊洲会_20240828
齋藤友宏
August 28, 2024
More Decks by 齋藤友宏
See All by 齋藤友宏
AWS上のサイバー攻撃に気をつけよう!
tomohirosaito
0
210
Featured
See All Featured
Darren the Foodie - Storyboard
khoart
PRO
4
4k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
580
What's in a price? How to price your products and services
michaelherold
247
13k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
Why Our Code Smells
bkeepers
PRO
340
58k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
520
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
750
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
ラッコキーワード サービス紹介資料
rakko
1
5.3M
Transcript
豊洲会LT 齋藤友宏
自己紹介 • 名前:齋藤友宏 • 業務内容: o 2020〜2023年 アライアンスリード、自社AWSサポート窓口 o 2024年〜
自社運用マネージドサービス改善PJ • 好きなAWSサービス: o AWS Amplify o AWS Support • 2023 Japan AWS Jr. Champions • 2022〜24 Japan AWS All Certifications Engineers 今更ながら、X始めました〜
リソースポリシーの明示的な拒否の定義に失敗して、 SQSにアクセスできなくなった話
リソースポリシーでアクセス制御したい 1. SQSからのメッセージを受信するリソースを、特定のLambdaのみにしたい 2. 人手による運用が入るのを考慮し、 マネジメントコンソール経由で全IAMユーザーからのアクセスは許可したい。
{ “Version”: “2012-10-17", “Statement”: [ { “Effect”: “Deny”, “Principal”: “*”,
“Action”: “sqs:*“, “Resource”: “arn:aws:sqs:ap-northeast-1:${AWS::AccountId}:SampleQueue”, “Condition”: { “StringNotEquels”: { “aws:UserAgent”: "aws-internal-console" }, “ArnNotLike”: { “aws:SourceArn”: "arn:aws:lambda:*:${AWS::AccountId}:function:sample-lambda-*" } } マネジメントコンソールで操作できる権限 Lambaがメッセージを受信できる権限
何が起こったか? • マネジメントコンソール上で、作成したSQSが表示されない。 • CloudShellで、list-queuesコマンドを叩いたら表示はされた。 • CloudShellで、delete-queueコマンドを叩いたらアクセス拒否された。 • 許可したはずのLambdaからも削除できない。。
キューポリシーを振り返る ①IAMユーザーからマネジメントコンソールで閲覧させる権限の誤り “StringNotEquels”: { “aws:UserAgent”: "aws-internal-console" }, チャット式の生成AIに聞いたら、この記載を提案され、それを受け入れた結果。 「aws:UserAgent」というのは、HTTPリクエストのヘッダー情報の指定らしい。 マネジメントコンソールのHTTPヘッダーを確認したが、
aws-internal-consoleという情報は出てこなかった。。
キューポリシーを振り返る ②Lambdaへの権限の記述誤り “ArnNotLike”: { “aws:SourceArn”: "arn:aws:lambda:*:${AWS::AccountId}:function:sample-lambda-*" } LambaのARNではなく、IAMロールを指定しないといけない。 あくまでLambdaからSQSへ操作する実行主体は、IAMロールである。
正しい記載は何か? { “Version”: “2012-10-17", “Statement”: [ { “Effect”: “Deny”, “Principal”:
“*”, “Action”: “sqs:*“, “Resource”: “arn:aws:sqs:ap-northeast-1:${AWS::AccountId}:SampleQueue”, “Condition”: { “ArnNotEquals”: { “aws:PrincipalArn”: [ “arn:aws:iam::${AWS::AccountId}:user/*“, “arn:aws:iam::${AWS::AccountId}:role/service-role/example-role” ]
今回の教訓 • Lambdaへのアクセス制御は、 付与しているIAMロールへのアクセス制御が必要。 ▪ 実行権限を付与する主体が何なのかは、 今後権限付与する際にしっかり調査する必要があると感じた。 • ポリシー作成後に動作確認するとはいえ、 安易に生成AIのいうことを聞いてはいけないケースがある。
▪ 今回は明示的な拒否のため、アクセスできなくなるリスクが孕んでおり、 そういう場合には慎重に調査をすべき。