๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

AWS

[aws] IAM JSON ์ •์ฑ… ํŒŒํ—ค์น˜๊ธฐ / IAM ARN

 

 

์ด ๊ธ€์˜ ์ผ๋ถ€๋Š” aws ๊ณต์‹๋ฌธ์„œ์˜ ๋‚ด์šฉ์„ ์ฐธ์กฐํ•˜์˜€์Œ์„ ๋ฐํž™๋‹ˆ๋‹ค.

 

 

๐Ÿ“Œ IAM JSON  

 

1. Statement : ์‹ค์งˆ์ ์ธ ๋‚ด์šฉ์„ ๋ฌถ์–ด์ฃผ๋Š” ํฐ ํ‹€์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ ํ•˜๋‚˜์ผ ์ˆ˜๋„ ์žˆ๊ณ  ์—ฌ๋Ÿฌ ๊ฐœ ์ผ ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ถ€ ์ •์ฑ…์—์„œ๋Š” SID ๊ฐ™์€ ๋ผ์ธ๋„ ์ƒ๊ธด๋‹ค.

2. Effect : Allow ์™€ Deny๋กœ ๊ตฌ๋ถ„๋˜๋ฉฐ, ํŠน์ • API์˜ ์ธํ—ˆ๊ฐ€ ์—ฌ๋ถ€์ด๋‹ค.

3. Principal : AdministratorAccess์˜ JSON์˜ ๊ฒฝ์šฐ Principal์ด ์ƒ๋žต๋˜์–ด์žˆ๋Š”๋ฐ, ์ด ๋ถ€๋ถ„์€ ํŠน์ • ์ •์ฑ…์ด ์ ์šฉ๋  ์‚ฌ์šฉ์ž ๊ณ„์ • or ์—ญํ• ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. root ๊ณ„์ •์ด๋ฉด root ํ˜น์€ ์ถ”ํ›„ ์ƒ์„ฑ๋˜๋Š” asdf IAM ์‚ฌ์šฉ์ž๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค.

4. Action : ์€ Effcet์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ ๊ฑฐ๋ถ€๋˜๊ฑฐ๋‚˜ ์Šน์ธ๋˜๋Š” Get ๊ฐ™์€ API ํ˜ธ์ถœ์˜ ๋ชฉ๋ก์ด๋‹ค.  

5. Resource : ์š”์†Œ๋Š” ๋ฌธ์—์„œ ๋‹ค๋ฃจ๋Š” ๊ฐ์ฒด๋ฅผ ์ง€์ •ํ•œ๋‹ค. Resource๋˜๋Š” NotResource์š”์†Œ๊ฐ€ ๋ฐ˜๋“œ์‹œ ์ถ”๊ฐ€๋˜์–ด์•ผ ํ•˜๋ฉฐ ๋ฆฌ์†Œ์Šค๋Š” ARN์„ ์‚ฌ์šฉํ•˜์—ฌ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ARN๊ณผ ๊ด€๋ จ๋œ ๋ถ€๋ถ„์€ ์–ด๋ ค์šธ ๊ฒƒ ๊ฐ™์œผ๋‹ˆ ๋ฐ‘์—์„œ ์„ค๋ช…ํ•˜๊ฒ ๋‹ค.

6. Condition : ๋˜ํ•œ ๋‹ค๋ฃจ๊ณ  ์žˆ์ง€ ์•Š๋Š”๋ฐ ์ด๊ฒƒ์€ Statement๊ฐ€ ์–ธ์ œ ์ ์šฉ๋ ์ง€๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.

 

 

 

JSON ์˜ˆ์‹œ

 

 

 

 

๋‹ค์Œ์€ AWS ๊ณ„์ •์—์„œ Bob์ด๋ผ๋Š” ์ด๋ฆ„์˜ IAM ์‚ฌ์šฉ์ž๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์˜ˆ์‹œ์ด๋‹ค. 

 

 

 

 

 

 

๐Ÿ“Œ IAM ARN

 

 

์œ„์—์„œ ์ •์ฑ…์˜ JSON ํ‘œ๊ธฐ์— ์•Œ์•„๋ณด์•˜๋‹ค๋ฉด ์ด๋ฒˆ์—” ์„ธ๋ถ€์ ์œผ๋กœ Resource ๋ถ€๋ถ„์—์„œ ์–ด๋–ค์‹์œผ๋กœ ํ‘œ๊ธฐํ•˜๋Š”์ง€ ์•Œ์•„๋ณด๊ณ ์ž ํ•œ๋‹ค.

๋‹ค๋ฅธ ๋ถ€๋ถ„๋“ค์€ ์ง๊ด€์ ์œผ๋กœ ๊ทธ ์“ฐ์ž„์ƒˆ๋ฅผ ์•Œ๊ธฐ ์‰ฝ์ง€๋งŒ Resource๋Š” ํ—ท๊ฐˆ๋ฆฌ๊ณ  ์ง๊ด€์ ์œผ๋กœ ์•Œ๊ธฐ ์–ด๋ ค์šด ๋ถ€๋ถ„์ด๊ธฐ๋„ ํ•˜์—ฌ์„œ ๋”ฐ๋กœ ์ •๋ฆฌํ•˜๊ฒŒ๋˜์—ˆ๋‹ค. ARN ์€ Amazon Resource Number์˜ ์•ฝ์ž๋กœ AWS ์„œ๋น„์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์ƒ์„ฑ๋˜๋Š” ์ผ๋ จ๋ฒˆํ˜ธ๋ฅผ ๋งํ•œ๋‹ค.  AWS๋Š” ๊ฐ๊ฐ์˜ ์„œ๋น„์Šค์—์„œ ๋งŒ๋“  ๋ฆฌ์†Œ์Šค๋“ค์„ ARN์œผ๋กœ ๊ตฌ๋ถ„ํ•˜๊ณ  ARN์ด ๋‹ค๋ฅด๋ฉด ์„œ๋กœ ๋‹ค๋ฅด๊ฒŒ ์ทจ๊ธ‰ํ•œ๋‹ค. 

 

 

 

 

 

 

  • partition์€ ๋ฆฌ์†Œ์Šค๊ฐ€ ์œ„์น˜ํ•˜๋Š” ํŒŒํ‹ฐ์…˜์„ ์‹๋ณ„ํ•œ๋‹ค. ํ‘œ์ค€ AWS ๋ฆฌ์ „์—์„œ ํŒŒํ‹ฐ์…˜์€ aws์ด๋ฉฐ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋‹ค๋ฅธ ํŒŒํ‹ฐ์…˜์— ์žˆ๋Š” ๊ฒฝ์šฐ ํŒŒํ‹ฐ์…˜์€ aws-partitionname์ด ๋œ๋‹ค . ์˜ˆ๋ฅผ ๋“ค์–ด ์ค‘๊ตญ(๋ฒ ์ด์ง•) ๋ฆฌ์ „์— ์žˆ๋Š” ๋ฆฌ์†Œ์Šค์˜ ํŒŒํ‹ฐ์…˜์€ aws-cn์ด ๋˜๊ฒ ๋‹ค.
  • service๋Š” s3, lambda์™€ ๊ฐ™์€ ์„œ๋น„์Šค๋ฅผ ์‹๋ณ„ํ•œ๋‹ค
  • region์€ ๋ฆฌ์†Œ์Šค์˜ ๋ฆฌ์ „์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค. IAM ๋ฆฌ์†Œ์Šค์˜ ๊ฒฝ์šฐ ํ•ญ์ƒ ๊ณต๋ฐฑ์ด๋‹ค.
  • account์€(๋Š”) ํ•˜์ดํ”ˆ์ด ์—†๋Š” AWS ๊ณ„์ • ID๋ฅผ ์ง€์ •ํ•œ๋‹ค.
  • resource๋Š” ํŠน์ • ๋ฆฌ์†Œ์Šค๋ฅผ ์ด๋ฆ„์œผ๋กœ ์‹๋ณ„ํ•œ๋‹ค.  resource ๋˜๋Š” resource-type ์ด ARN ๋ถ€๋ถ„์˜ ๋‚ด์šฉ์€ ์„œ๋น„์Šค๋ณ„๋กœ ๋‹ค๋ฅด๋ฉฐ. ๋ฆฌ์†Œ์Šค ์‹๋ณ„์ž๋Š” ๋ฆฌ์†Œ์Šค์˜ ์ด๋ฆ„ ๋˜๋Š” ID์ผ ์ˆ˜ ์žˆ๋‹ค. 

 

- ARN ์˜ˆ์‹œ

 

์˜ˆ์ œ์—์„œ๋Š” S3 ARN์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค. ์ด S3 ARN์€ ๊ฒฝ๋กœ์™€ ํŒŒ์ผ์ด ์ง€์ •๋˜์—ˆ์Œ์„ ๋ณด์—ฌ์ค€๋‹ค. ์ผ๋ถ€ ๋ฆฌ์†Œ์Šค ์‹๋ณ„์ž์—๋Š” ์ƒ์œ„ ๋ฆฌ์†Œ์Šค (sub-resource-type/parent-resource/sub-resource) ๋กœ ํ‘œ๊ธฐ๋˜๋Š”๋ฐ S3์˜ ์˜ˆ์‹œ๋กœ ๊ทธ ํ‘œ๊ธฐ๋ฒ•์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

 

 

 

์ด ๊ฒฝ์šฐ s3์„œ๋น„์Šค exaplebucket ๋””๋ ‰ํ† ๋ฆฌ์•ˆ์— my-data/sales-export-2019-q4.json์˜ ๋ฆฌ์†Œ์Šค๋งŒ์„ ํ‘œ๊ธฐํ•œ๋‹ค.

ํ•˜์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ s3 ์‚ฌ์šฉ์˜ ๊ฒฝ์šฐ ๋ฒ„ํ‚ท์˜ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋“ค์— ๊ถŒํ•œ์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ž˜์™€ ๊ฐ™์ด ARN์—์„œ ์™€์ผ๋“œ์นด๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

 

 

 

ํ˜น์€ ํŠน์ • ๋””๋ ‰ํ† ๋ฆฌ์—๋งŒ ๋ฆฌ์†Œ์Šค๋ฅผ ํ—ˆ์šฉํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ ๋ถ€๋ถ„์—์„œ ์™€์ผ๋“œ ์นด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ผ๋ถ€ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ๋””๋ ‰ํ† ๋ฆฌ์—๋งŒ ์™€์ผ๋“œ์นด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ARN์„ ํ‘œ๊ธฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

 

 

 

 

 ์ถœ์ฒ˜:  https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns [aws ๊ณต์‹๋ฌธ์„œ]