IAM Policies Structure
IAM JSON ํ์ผ์ AWS์์ IAM(Identity and Access Management) ์ ์ฑ ์ ์ ์ํ ๋ ์ฌ์ฉ๋๋ ํ์ผ ํ์์ด๋ค. ์ด ํ์ผ์ JSONํ์์ผ๋ก ์์ฑ๋๋ฉฐ, ์ฌ์ฉ์, ๊ทธ๋ฃน, ์ญํ (Role) ๋ฑ์ ๋ํ ๊ถํ(permissions)์ ์ค์ ํ๋ ๋ฐ ์ฐ์ธ๋ค.
IAM JSON Structure
IAM JSON ํ์ผ์ AWS ๋ฆฌ์์ค์ ๋ํด ํ์ฉ(Allow)ํ๊ฑฐ๋ ๊ฑฐ๋ถ(Deny)ํ ์์
์ ๋ช
์ํ๋ ์ ์ฑ
(policy)์ ์ ์ํ๋ค.
์ด๋ฅผ ํตํด ์ด๋ค ์ฌ์ฉ์๊ฐ ์ด๋ค AWS ์๋น์ค์์ ์ด๋ค ์์
์ ์ํํ ์ ์๋์ง๋ฅผ ์ ์ดํ๋ค.
JSON ํ์ผ ์์
JSON ํ์ผ ํ๋
Consists of
• Version: policy language version, always include “2012 -10 - 17”
• Id: an identifier for the policy (optional)
• Statement: one or more individual statements (required)
Statements consists of
• Sid: an identifier for the statement (optional)
• Effect: whether the statement allows or denies access (Allow, Deny)
• Principal: account/user/role to which this policy applied to (Optional)
• Action: list of actions this policy allows or denies
• Resource: list of resources to which the actions applied to • Condition: conditions for when this policy is in effect (optional)
• Condition: conditions for when this policy is in effect (optional)
์ ์ฒด ์ ์ฑ
์ ๋ํด์ Optional top-level elements๊ฐ ์๊ณ ์ฌ๊ธฐ์ ์ฌ๋ฌ ๊ฐ์ Statement ๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
๊ทธ๋ฆฌ๊ณ ํ๋์ Statement์๋ ์ฌ๋ฌ๊ฐ์ permission ์ ๋ณด๊ฐ ํฌํจ ๋์ด์๋ค.
์ฌ์ฉ์ ๊ทธ๋ฃน์์ ํด์ ํ๊ธฐ
Ash ์ฌ์ฉ์๋ฅผ Admin ๊ทธ๋ฃน์์ ์ ๊ฑฐํ๋ ๋ฒ
Root ๊ณ์ ์ผ๋ก IAM ์ฝ์ > Users ํญ > ์ฌ์ฉ์๋ช > Groups ํด๋ฆญ > ๊ทธ๋ฃน๋ช ์ ์ฒดํฌ > Remove
Ash ๊ณ์ ์ผ๋ก ์ ์ํ๋ฉด Access Denied
์ฌ์ฉ์๋ฅผ ๊ทธ๋ฃน ๋ค์ ์ถ๊ฐํ๊ธฐ
Root ๊ณ์ ์ผ๋ก IAM ์ฝ์ > Users ํญ > ์ฌ์ฉ์๋ช > Permissions > Add Permissionis
Policies (์ ์ฑ )
Root ๊ณ์ ์ผ๋ก IAM ์ฝ์ > Policies ํญ > Permissions ์์ Administrator Access ๋ AWS ์ ๋ชจ๋ ์๋น์ค๋ฅผ ํ์ฉํจ
Administrator Access
์ด ์ ์ฑ ์ JSON ํ์ผ์ ๋ณด๋ฉด * ๋ก ํ๊ธฐ๋จ
* (Anything) = ์ด๋ Resource ์์, ์ด๋ค Action ์ด๋ ํ์ฉ
๊ทธ๋ ๋ค๋ ๊ฑด ๊ด๋ฆฌ์ ์์ธ์ค๋ฅผ ๋ฐ๋ ๊ฒ๊ณผ ๊ถํ์ด ์ ํํ ์ผ์นํ๋ค๋ ๋ป.
IAMReadOnlyAccess
์ด ์ ์ฑ ์ Full: List Limited: Read
์ ํ๋ฉด์์ IAM๋๋ฅด๊ณ permissions ํ์ด์ง๋ก ๊ฐ๋ฉด ์ด ์ ์ฑ ์ ์ผ๋ถ๋ก์ ํ์ฉ๋๋ชจ๋ API ๋ชฉ๋ก์ ๋ณผ ์ ์๋ค.
JSON ํ์ผ์ ์ดํด๋ณด๋ฉด
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iam:GenerateCredentialReport",
"iam:GenerateServiceLastAccessedDetails",
"iam:Get*",
"iam:List*",
"iam:SimulateCustomPolicy",
"iam:SimulatePrincipalPolicy"
],
"Resource": "*"
}
]
}
iam:Get*
GET์ผ๋ก ์์ํ๋ ๊ฒ๋ค ๋ชจ๋ ํธ์ถ ๊ฐ๋ฅ (์: GETUSERS, GETGROUPS ๋ฑ)
์ฌ์ฉ์ ์ ์ Policy(์ ์ฑ ) ์ถ๊ฐํ๊ธฐ
์ฐ์ธก ์๋จ์ Create policy
Policy editor
- Visual ๋ชจ๋์์๋ ์ง๊ด์ ์ผ๋ก ์ฒดํฌ๋ฐ์ค๋ฅผ ํตํด ์ต์ ์ ํ(Actions Allowed, Resource ๋ฑ ์ง์ ๊ฐ๋ฅ)
- JSON ๋ชจ๋์์๋ ์ง์ ์ ์ผ๋ก JSON ํ์ผ์ ์์ ํ ์ ์์.
์์ฑํ Users, Groups ๋ณดํธ
- ๋น๋ฐ๋ฒํธ ์ ์ฑ ์ค์
- MFA(Multi Factor Authentication)
IAM – Password Policy
• Strong passwords = higher security for your account
• In AWS, you can setup a password policy:
- Set a minimum password length
- Require specific character types: ncluding uppercase letters, lowercase letters, numbers, non-alphanumeric characters
- Allow all IAM users to change their own passwords
- Require users to change their password after some time (password expiration) : ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ ์ฃผ๊ธฐ
- Prevent password re-use : ๊ฐ์ ๋น๋ฐ๋ฒํธ ์ฌ์ฉํ์ง ์๊ธฐ
MFA(Multi Factor Authentication) - ๋ค์ค์ธ์ฆ
• In AWS, very recommended to use, and essential
• You want to protect your Root Accounts and IAM users
• MFA = password you know + security device you own
- ํ ๋ง๋๋ก ์ ์ ์ ๋น๋ฐ๋ฒํธ + MFA ํ ํฐ ์กฐํฉ์ผ๋ก ๊ณ์ ๋ณดํธํ๋ ๊ฒ
- ์ ์ ๊ฐ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ถ์คํ๊ฑฐ๋ ํดํน๋นํด๋ ํด์ปค๊ฐ ์ ์ ์ ๋ฌผ๋ฆฌ์ ์ฅ์น๋ ํ๋ณดํด์ผ ํ๋ฏ๋ก ๋งค์ฐ ์์ ํ ๊ณ์ ๋ณดํธ ๋ฐฉ๋ฒ์ด๋ค.
MFA ์ฅ์น
- Google Authenticator(phone only)
- Authy(phone only)
Above two is support for multiple tokens on a single device.
- Universal 2nd Factor(U2F) Security Key
๋ฌผ๋ฆฌ์ ์ธ ์ฅ์น, ๋ฐ๋์ AWS ์์ ์ ๊ณตํ๋ ๊ฒ์ ์๋
๋จ์ผ ๋ณด์ํค๋ง ์ฌ์ฉ ๊ฐ๋ฅ
ํ๋์จ์ด ๋ณด์ ํ ํฐ
MFA ์ค์ ์ค์ต
1. ๋น๋ฐ๋ฒํธ ๋ณด์ ์ค์
IAM ๋์๋ณด๋ > Account settings > Password Policy > Edit > Custom
- ๋น๋ฐ๋ฒํธ ์ต์ ๊ธธ์ด ์ง์
- ๋๋ฌธ์, ์๋ฌธ์, ์ซ์, ์์ซ์๊ฐ ์๋ ๋ฌธ์
- ๋น๋ฐ๋ฒํธ ๋ง๋ฃ ๊ธฐ๋ฅ - n ์ผ ํ์ ๋น๋ฐ๋ฒํธ ๋ง๋ฃ
- ๋น๋ฐ๋ฒํธ ๋ง๋ฃ์ ๊ด๋ฆฌ์๊ฐ ์ฌ์ค์ ํ๋๋ก ์ค์
- ์ฌ์ฉ์๊ฐ ์ง์ ์ฌ์ค์ ํ๋๋ก ์ค์
- ๋น๋ฐ๋ฒํธ ์ฌ์ฌ์ฉ ๋ฐฉ์ง
2. ๋ฃจํธ ๊ณ์ ์ ๋ํ ๋ค๋จ๊ณ ์ธ์ฆ ์ค์ MFA
์ฐ์ธก ์๋จ ๊ณ์ ์ด๋ฆ ํด๋ฆญ > ๋ณด์ ์๊ฒฉ ์ฆ๋ช ํด๋ฆญ(Security Credentials)
AWS ๊ณ์ ์์ ๊ฐ์ฅ ์ค์ํ ๊ณ์ ์ธ ๋ฃจํธ ์ฌ์ฉ์๋ฅผ ๋ณดํธํ๊ธฐ ์ํด MFA ์ธ์ฆ ์ค์ ํด ์ฃผ์
ํ์ง๋ง ๋ค์ค ์น์ผ ์ฅ์น์ ๋ํ ์ก์ธ์ค ๊ถํ์ ์์ด๋ฒ๋ฆฌ๋ฉด ๊ณ์ ์์ ๋ฝ์์ ๋นํ๊ธฐ ๋๋ฌธ์
ํธ๋ํฐ ๋ฑ์ ๋ถ์คํ ์ํ์ด ์์ผ๋ฉด ์ ํ๋ ๊ฒ์ด ์ข๋ค.
๊ทธ๋ฆฌ๊ณ MFA ์ฅ์น๋ฅผ ์ค์ ํ ํ ํด์ ํ ์๋ ์๋ค.
Assign MFA > Select MFA device > ์ฅ์น ์ง์ ํ๊ณ Device name ์ค์
์ค๋งํธํฐ์ด๋ฉด Authenticator app ์ผ๋ก ์ง์ ํ๋ฉด ๋จ
Set up your authenticator app
์ค๋งํธํฐ ์ ํ์ ๋ง๋ ์ฑ์ ์ค์นํด์ผ ํจ.
ํด๋ํฐ์์ ์ฑ ์คํ ํ QR ์ฝ๋ ํ์ ํด๋ฆญ
show QR Code > ์ฝ๋ ์ค์บ
์ฝ๋ ์ค์บํ๋ฉด Account Name ์ค์ ํ๋ฉด์ผ๋ก ์ด๋
ํฐ์์ ์ค์๊ฐ์ผ๋ก ๋ฐ๊ธ๋ MFA code 1 ์ AWS ํ์ด์ง์ ์ ๋ ฅ
MFA code 2 ๊น์ง ์ ๋ ฅ > MFA ์ถ๊ฐ > ์ฅ์น ๋ฑ๋ก ์๋ฃ
์ต๋ 8๊ฐ๊น์ง ์ฅ์น ๋ฑ๋ก ๊ฐ๋ฅ
์ด์ ๋ฃจํธ ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธ ํ ๋ MFA code ์ฐฝ์ด ๋ธ
ํด๋น ์ฝ๋๋ฅผ ์ ๋ ฅํด์ผ๋ง ๋ก๊ทธ์ธ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๊ณ์ ๋ณด์ ์์ค์ด ๊ฐํ๋จ
'Coding > AWS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[AWS] ์ค์ต3์ผ์ฐจ - AWS Access Key, CLI & SDK (5) | 2025.01.19 |
---|---|
[AWS] ์ค์ต1์ผ์ฐจ - IAM: Users & Groups (4) | 2025.01.15 |