Paano Magpalagay ng Tungkulin ng IAM Gamit ang AWS CLI?

Paano Magpalagay Ng Tungkulin Ng Iam Gamit Ang Aws Cli



Dahil ang AWS ay nagbibigay ng ilang mga serbisyo at napakalaking benepisyo, natural lamang na ang mga alalahanin sa seguridad ay itinaas ng mga eksperto sa IT. Upang matugunan ang mga alalahaning ito sa seguridad, ang serbisyo ng IAM ay ipinakilala ng AWS. Ang AWS IAM ay isa sa mga pangunahing serbisyo sa web na nagbibigay-daan sa mga user na ma-secure ang mga mapagkukunan ng AWS. Ang IAM ay nagbibigay ng functionality ng central access management ng mga serbisyo ng AWS sa pamamagitan ng pagtukoy sa mga pahintulot para sa iba't ibang user.

Mabilis na Balangkas

Sa artikulong ito, matututunan mo ang tungkol sa:







Ano ang AWS IAM Role?
Ano ang Assume Role sa AWS?
Paano Magpalagay ng Tungkulin ng IAM Gamit ang AWS CLI?



Pangwakas na Kaisipan



Sa mga tungkulin at pahintulot ng IAM, matutukoy namin ang napatotohanan at awtorisadong pag-access sa mga serbisyo ng AWS. Ang mga tungkulin at pahintulot na ito ay maaari lamang italaga ng root user (may-ari) ng AWS account.





Ano ang AWS IAM Role?

Ang tungkulin ng IAM ay isang pagkakakilanlan na ginawa ng root user sa loob ng AWS account. Ang pagkakakilanlang ito ay itinalaga ng mga partikular na pahintulot na tumutukoy sa saklaw ng pag-access ng tungkulin ng IAM sa mga mapagkukunan ng AWS. Ang mga pahintulot na ito ay maaaring pinamamahalaan ng AWS o custom na tinukoy ng root user.

Ang tungkulin ng IAM ay halos kapareho sa user ng IAM maliban na ang tungkulin ng IAM ay isang pagkakakilanlan na may ilang partikular na mga pahintulot habang maaaring gawin ng user ang mga tungkuling ito upang magsagawa ng ilang partikular na pagpapagana. Tinutukoy ng mga pahintulot na ibinibigay sa tungkulin kung anong mga pagkilos ang maaaring gawin gamit ang pagkakakilanlan na ito (gampanan ng IAM).



Ano ang Assume Role sa AWS?

Ipagpalagay na ang Tungkulin ay isa sa mga functionality ng serbisyo ng AWS IAM na nagbibigay-daan sa user na kumilos sa mga serbisyo ng AWS bagama't ang mga pahintulot para sa pag-access o pagmamanipula ng mapagkukunan sa loob ng serbisyo ay hindi itinalaga sa user. Ang mga pahintulot na ito ay hindi direktang itinalaga sa user kapag ang isang tungkulin ay ipinapalagay. Ang isang hanay ng mga pansamantalang kredensyal kasama ang isang session-based na login ay ginagamit para sa pag-access sa mga mapagkukunan ng AWS.

Kasama sa mga pansamantalang kredensyal na ito ang Lihim na Access Key, Access Key ID, at Security Token. Ang mga Tungkulin ng IAM na ginawa ng root user ng AWS ay maaaring ipalagay ng ibang mga user sa loob ng AWS account o ng mga user na ang ARN ay binanggit sa patakaran ng tungkulin. Ang patakaran na naglalaman ng ARN ng mga user o mapagkukunan ay kilala bilang ang Patakaran sa tiwala .

Ano ang Pagkakaiba sa pagitan ng Patakaran sa Pahintulot at Patakaran sa Pagtitiwala?

Bago ipatupad ang pagpapagana ng assume-role sa pamamagitan ng magkakaibang pamamaraan, mayroong dalawang pangunahing konsepto na dapat maunawaan ng user. Mayroong dalawang uri ng mga patakaran sa serbisyo ng IAM:

    • Patakaran sa Pagtitiwala: Tinutukoy ng isang patakaran sa tiwala kung sino ang maaaring kumuha ng isang partikular na tungkulin ng IAM. Para sa isang tungkuling gagampanan ng isang user, ang ARN ng user ay binanggit sa patakaran sa pagtitiwala ng tungkulin ng IAM. Tinutukoy ng patakaran ng tiwala na ito kung ang user o ang mga mapagkukunan ay isang pinagkakatiwalaang entity para sa pag-ako sa tungkuling ito.
    • Patakaran sa Pahintulot: Tinutukoy ng patakarang ito kung ano ang magagawa ng isang user o kung anong mga pagkilos ang maaaring gawin sa tungkulin.

Paano Magpalagay ng Tungkulin ng IAM Gamit ang AWS CLI?

Ang pag-ako ng isang tungkulin ay katulad ng pagpapanggap sa iyong sarili bilang isa pang user na napatotohanan at awtorisadong magsagawa ng ilang partikular na pagkilos. Habang ipinapalagay ang isang pagkakakilanlan, tiniyak ng AWS na nananatiling buo ang seguridad.

Unawain natin ang paggana ng pagpapagana ng Assume-role sa pamamagitan ng pagsasaalang-alang sa sumusunod na halimbawa.

Halimbawa, ang isang user ay umiiral sa loob ng AWS account na hindi nakatalaga ng anumang mga pahintulot para sa S3 bucket. Ang “Read-OnlyAccess” ay tinatawag na patakaran sa pahintulot na naka-attach sa isang tungkulin ng IAM. Para gampanan ng user ang tungkuling ito, binabanggit ang ARN ng user sa patakaran ng tungkulin ng IAM. Ang patakarang ito ay tinatawag na ngayon bilang 'patakaran sa pagtitiwala' at iba ito sa patakaran sa pahintulot. Ang patakaran sa Trust ay mahalaga dahil nakakatulong ito sa AWS na matukoy kung ang user ay isang awtorisadong entity o hindi.

Tandaan na ang ARN ay binanggit sa patakaran sa Trust at hindi sa patakaran sa Pahintulot ng tungkulin ng IAM. Sa pamamagitan ng pag-aakala ng isang tungkulin, ang user ay maaaring magsagawa ng ilang administratibong pagkilos na tinukoy ng patakaran sa pahintulot ng tungkulin. Kasama sa mga pagkilos na ito ang pagdaragdag, pagtanggal, pagbabago, o pagpapanumbalik ng mapagkukunan, atbp.

Ang sumusunod ay ang tatlong Paraan para sa pag-ako ng isang tungkulin sa AWS CLI:

Paraan 1: Paggamit ng STS (Security Token Service)

Ang mga gumagamit ay maaaring kumuha ng isang tungkulin sa pamamagitan ng pagpapatupad ng mga utos sa seksyon ng STS (Secure Token Service) na nagbabalik ng isang set ng mga pansamantalang kredensyal. Ang mga pansamantalang kredensyal ay ginagamit upang magtatag ng isang session-based na pag-login upang gumawa ng mga tawag sa API sa mga mapagkukunan. Gayunpaman, mayroong dalawang eksepsiyon habang ginagamit ang STS ibig sabihin, GetFederationToken at GetSessionToken.

Ang user ay pinaghihigpitan sa pag-access sa mga token na ito upang ma-secure ang kumpidensyal na impormasyon ng Session at Federation Token. Upang ang seguridad ay hindi makompromiso sa anumang pagkakataon. Sa pamamagitan ng pag-ako ng isang tungkulin, maaaring itaas ng isang user ang kanilang mga nakatalagang pribilehiyo.

Sa seksyong ito ng artikulo, hihiling kami ng isang hanay ng mga pansamantalang kredensyal gamit ang mga utos ng STS. Nasa ibaba ang mga hakbang:

Hakbang 1: Gumawa ng Patakaran ng User at User

Una, gagawin natin lumikha ng IAM user na walang pahintulot. Para sa layuning ito, buksan ang CMD mula sa Start menu ng Windows:


Tanging ang gumagamit ng ugat pwede lumikha isang Gumagamit ng IAM sa loob ng AWS account. Samakatuwid, mag-sign in sa AWS root account sa pamamagitan ng paggamit ng sumusunod na command:

aws configure


Ang mga kredensyal ay na-configure na sa loob ng CLI para sa demo na ito tulad ng ipinapakita sa output ng command:


Matuto pa:

Upang lumikha ng IAM user , ibigay ang sumusunod na command sa CLI:

aws iam create-user --user-name demo-user


Palitan ANG demo-user kasama ang iyong IAM user name.

Iligtas ang 'Arn' ibinigay sa output ng utos kung ano ang mangyayari kailangan kailan paglikha ang Patakaran sa Pagtitiwala :


Magbasa pa:

Ang susunod na hakbang ay ang pahintulot ang gumagamit (demo-user ) sa kumuha ng papel . Para sa layuning ito, lumikha ng a JSON file gamit ang anuman text editor Mas gusto mo. Para sa demo na ito, ginamit namin Notepad tulad ng tinukoy sa nabanggit na utos sa ibaba:

Para sa Windows

notepad user-policy.json


Palitan ANG patakaran ng gumagamit gamit ang iyong pangalan ng patakaran sa IAM.

Para sa Linux OS

kasi user-policy.json


Sa ngayon, ginagamit namin ang Windows Operating system para sa demo na ito:


Bubuksan nito ang notepad. Idikit ang sumusunod na patakaran sa notepad at pindutin “CTRL + S” mula sa keyboard upang i-save ang mga pagbabago:

{
'Bersyon' : '2012-10-17' ,
'Pahayag' : [
{
'Epekto' : 'Payagan' ,
'Aksyon' : [
'ec2:Ilarawan*' ,
'iam:ListRoles' ,
'sts:AssumeRole'
] ,
'Resource' : '*'
}
]
}


Sa ibaba ay ibinigay ang isang maikling paglalarawan ng patakarang tinukoy:

    • ec2:Ilarawan: Tinutukoy ng pahintulot na ito na maaaring tingnan o ilista ng user ang lahat ng AMI, snapshot, o EC2 instance
    • iam:ListRoles: Tinutukoy ng pahintulot na ito na maaaring ilista ng user ang lahat ng mga tungkulin sa loob ng serbisyo ng IAM.
    • sts:AssumeRole: Ang pahintulot na ito ay kumakatawan na ang user ay maaaring kumuha ng isang tungkuling tinukoy sa loob ng serbisyo ng IAM.

Dito, ang patakaran ay na-edit sa loob ng notepad at nai-save:


Ang bawat AWS mapagkukunan ay nakatalaga sa isang Pangalan ng Access-Resource (ARN) alin natatanging kinikilala ang mapagkukunan. Upang matukoy ang ARN ng patakaran, gamitin ang nabanggit na command sa ibaba.

aws iam create-policy --Pangalan ng Patakaran patakaran ng gumagamit --dokumento ng patakaran file: // user-policy.json


Sa nabanggit na utos:

    • -Pangalan ng Patakaran: Palitan ang halaga 'patakaran ng gumagamit' na may anumang pangalan ng patakaran na gusto mo.
    • –dokumento ng patakaran: Sa field na ito, palitan ang ' user-policy.json” na may pangalan ng json file na naglalaman ng patakaran para sa user.

Ang output ng nabanggit na utos ay ang mga sumusunod. Iligtas ang 'Arn' binanggit sa output ng patakaran dahil kakailanganin ito kapag inilakip ang patakarang ito sa user:

Hakbang 2: Mag-attach ng Patakaran sa User

Ang patakarang ito ay magbibigay-daan sa user na ilista ang EC2 instance , Mga kaibigan , atbp. Kapag gumanap ang user ng isang tungkulin na may ibang pahintulot, magagawa lang ng user ang partikular na pagkilos na iyon ayon sa pinapayagan ng patakaran sa pahintulot.

Upang ilakip ang patakaran sa user na ginawa nang mas maaga sa seksyong ito, gamitin ang sumusunod na command:

aws iam attach-user-policy --user-name demo-user --patakaran-arn 'arn:aws:iam::123456789:policy/user-policy'


Sa nabanggit na utos:

    • –user-name: Palitan ANG 'demo-user' nasa –user-name field na may iyong IAM user name.
    • –patakaran-arn: Katulad nito, sa –patakaran-arn, tukuyin ang 'Arn' mula sa output ng nakaraang command i.e., –create-policy.

Sa pamamagitan ng pagsasagawa ng utos pagkatapos gawin ang mga kinakailangang pagbabago, matagumpay na nai-attach ang patakaran sa user:


Upang i-verify kung ang patakaran ay naka-attach sa user, ibigay ang sumusunod na command sa CLI:

aws iam list-attached-user-policies --user-name demo-user


Palitan ANG demo-user gamit ang iyong IAM user name tinukoy habang nililikha ang user.

Ang output ng sumusunod na command ay nagpapatunay na ang patakaran ay matagumpay na na-attach sa user:

Hakbang 3: Gumawa ng Patakaran sa Pagtitiwala at Tungkulin ng IAM

Ang isang ugnayang pinagkakatiwalaan ay itinatag kapag ang isang mapagkukunan o ARN ng isang user ay tinukoy sa isang patakaran. Ang functionality na ito ay nagbibigay-daan sa mga user o entity na magsagawa ng ilang partikular na pagkilos dahil sila ay itinuturing na pinagkakatiwalaan ng patakaran.

Sa hakbang na ito, gagawa kami ng patakaran na nagtatatag ng ugnayan ng tiwala sa pagitan ng tungkulin ng IAM at ng user. Ang patakaran sa pagtitiwala na ito ay ikakabit sa tungkulin ng IAM. Ang tungkulin ng IAM ay sasakupin ng user na hindi direktang magpapahintulot sa user na gawin ang mga pagkilos na tinukoy sa patakaran.

Upang lumikha ng isang patakaran sa pagtitiwala, ang mga utos ay ibinibigay tulad ng sumusunod:

Para sa Windows

notepad trust-role-policy.json


Palitan ANG trust-role-policy.json na may pangalan ng iyong kagustuhan para sa patakaran.

Para sa Linux OS

kasi trust-role-policy.json


Palitan ANG trust-role-policy.json na may pangalan ng iyong kagustuhan para sa patakaran.

Ang patakaran ng tiwala ay sumusunod sa JSON na format gaya ng tinukoy ng .json extension sa sumusunod na command:


Bubuksan nito ang notepad. Idikit ang mga sumusunod patakaran sa loob ng notepad at pindutin ang “CTRL + S” button mula sa keyboard upang i-save ang mga pagbabago. Ang ARN ng user ay maaari ding kopyahin mula sa dashboard ng User ng IAM console. Para sa layuning ito, bisitahin ang IAM dashboard at i-click ang pangalan ng user. Mula sa ipinapakitang configuration, kopyahin ang ARN ng user na ipinapakita sa loob ng seksyong Buod.:

{
'Bersyon' : '2012-10-17' ,
'Pahayag' : {
'Epekto' : 'Payagan' ,
'Major' : {
'AWS' : 'arn:aws:iam::123456789012:user/example-user'
} ,
'Aksyon' : 'sts:AssumeRole'
}
}


Sa nabanggit na patakaran:

    • AWS: Palitan ANG Halaga ng field ng AWS “arn:aws:iam::123456789012:user/example-user ”na may ARN ng gumagamit na ipinakita sa output ng –create-user command.

Maaaring paghigpitan ng user ang ibang mga user sa pag-ako sa tungkulin ng IAM sa pamamagitan ng pagtukoy sa ARN ng user sa “AWS” field:


Magbasa pa:

Ngayon, gumawa ng tungkulin ng IAM at ilakip dito ang patakaran sa pagtitiwala. Upang lumikha ng tungkulin ng IAM, gamitin ang nabanggit na command sa ibaba:

aws iam create-role --pangalan ng tungkulin tungkulin ng gumagamit --assume-role-policy-document file: // trust-role-policy.json


Ang sumusunod ay ang paglalarawan ng mga nabanggit na field:

    • –pangalan ng tungkulin: Ginagamit ang field na ito upang ipasok ang pangalan na itatalaga sa tungkuling ito ng IAM. Palitan ang value ng 'user-role' ng pangalan ng tungkulin ng IAM na gusto mo.
    • –assume-role-policy-document: Sa patlang na ito tukuyin ang landas tulad ng ibinigay sa utos. Palitan ang trust-role-policy.json ng pangalan ng patakaran gaya ng tinukoy mo sa naunang seksyon.

Sa pamamagitan ng pagpapatupad ng command na ito, magbabalik ito ng ilang piraso ng impormasyon sa output hal., ARN, Path, ID, atbp:


Magbasa pa:

Sa pag-ako ng tungkuling ito, magagawa ng user ang “ReadOnlyAccess” aksyon gamit ang S3 bucket. Ang utos ay ibinigay tulad ng sumusunod:

aws iam attach-role-policy --pangalan ng tungkulin tungkulin ng gumagamit --patakaran-arn 'arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess'


Sa utos sa itaas:

    • –pangalan ng tungkulin: Palitan' tungkulin ng gumagamit” sa field na –role-name na may Pangalan ng tungkulin ng IAM na tinukoy mo kanina sa tutorial na ito.
    • –patakaran-arn: Ang arn na tinukoy sa –policy-arn ay tumutukoy sa ReadOnlyAccess na pahintulot para sa S3 bucket.

Sa larawang ito, ang tungkulin ay itinalaga ng pahintulot na ReadOnlyAccess para sa S3 bucket:


Upang i-verify kung ang pahintulot ay naitalaga sa tungkulin o hindi gamitin ang sumusunod na command:

aws iam list-attached-role-policies --pangalan ng tungkulin tungkulin ng gumagamit


Palitan ANG 'ginagampanan ng gumagamit' gamit ang pangalan ng iyong tungkulin sa IAM.

Ang “AmazonS3ReadOnlyAccess” Ang pahintulot ay naka-attach sa tungkulin ng IAM. Ang output ng command ay ibinibigay tulad ng sumusunod:

Hakbang 4: Gumawa ng Mga Access Key

Sa seksyong ito, gagawa kami ng mga access key para sa user. Gagamitin ang mga access key para mag-log in sa AWS Account:

aws iam create-access-key --user-name demo-user


Palitan ANG demo-user gamit ang iyong IAM user name na ibinigay sa oras ng paglikha ng isang user.

Dito, nagbalik ang command ng isang hanay ng mga pares ng Access key (AccessKeyId at Secret Access Key)  na may mga karagdagang detalye gaya ng petsa ng ginawa, status, atbp. I-save ang AccessKeyId at SecretAccessKey dahil kinakailangan ang mga ito mamaya sa tutorial:


Magbasa pa:

Hakbang 5: I-configure ang Access Key at I-verify ang IAM User

Upang i-configure ang access key, ibigay ang sumusunod na command sa CMD at pagkatapos ay ilagay ang Access Key ID at Secret Access Key:

aws configure


Ibigay ang Access Key ID at Secret Access Key sa CLI na ginawa sa Hakbang 4 ng seksyong ito. Para sa rehiyon, pinanatili namin ang mga default na setting. Maaaring i-configure ng mga user ang anumang format ng output para sa default na format ng output. Para sa demo na ito, tinukoy namin ang JSON format:


Upang ma-verify kung ang user ng IAM ay na-configure, ibigay ang sumusunod na command sa CLI:

aws sts get-caller-identity


Ang output ng command ay nagpapahiwatig na ang 'demo-user' ay matagumpay na na-configure, at kasalukuyang naka-log in sa AWS account:


Upang matukoy na maaaring ilista ng user ng IAM ang mga instance ng EC2 at walang access sa S3 bucket sa kasalukuyan, gamitin ang sumusunod na command:

aws ec2 describe-instances --tanong 'Mga Pagpapareserba[*].Mga Instance[*].[VpcId, InstanceId, ImageId, InstanceType]'


Ang output ng command ay ibinibigay tulad ng sumusunod:


Ngayon, ibigay ang sumusunod na command upang i-verify kung maa-access ng user ang S3 bucket:

aws s3 ls


Ipapakita nito ang 'Walang pahintulot' error na nagpapahiwatig na ang user ay hindi pinapayagang ma-access ang S3 bucket:

Hakbang 6: Ipagpalagay ang Tungkulin ng IAM

May pahintulot ang user na ilista ang mga tungkulin ng IAM sa loob ng AWS account. Samakatuwid, upang maisagawa ang Tungkulin, kukunin muna natin ang kinakailangang impormasyon tulad ng ARN sa pamamagitan ng pagsasagawa ng sumusunod na utos:

aws iam list-roles --tanong 'Mga Tungkulin[?RoleName == 'user-role'].[RoleName, Arn]'


Palitan ang 'user-role' ng pangalan ng tungkulin ng IAM sa field na 'RoleName'.

Ang ARN ay ibinigay sa output ng nabanggit na utos:


Ngayong mayroon na tayong ARN ng tungkulin ng IAM, maaari nating tanggapin ang tungkulin sa pamamagitan ng paggamit ng sumusunod na utos:

aws sts assume-role --role-arn 'arn:aws:iam::123456789012:role/example-role' --role-session-name AWSCLI-Session


Sa utos sa itaas:

    • –role-arn: Palitan ang nabanggit na value para sa –role-arn ng ARN ng tungkulin ng IAM.
    • –role-session-name: Ang user ay maaaring magbigay ng anumang pangalan ng kagustuhan para sa field na ito.

Sa pamamagitan ng pagsasagawa ng nabanggit na utos, naibalik ang isang hanay ng mga pansamantalang kredensyal. Gagamitin ang mga pansamantalang kredensyal na ito upang kunin ang tungkulin ng IAM na may nais na pahintulot ibig sabihin, ReadOnlyAccess. Gagamitin ang AccessKeyId at SecretAccessKey habang kino-configure ang mga pansamantalang kredensyal na ito:


Narito ang isang maikling paglalarawan ng output ng command:

    • SessionToken: Ang Session token ay ginagamit upang lumikha ng session-based na login. I-save ang halaga ng field na ito dahil kakailanganin ito habang kino-configure ang mga kredensyal.
    • Expiration: Ang session token ay may petsa at oras ng pag-expire. Ang Token ay mawawalan ng silbi pagkatapos ng tinukoy na oras at ang user ay hindi magagawang gampanan ang tungkulin.

Hakbang 7: I-configure ang Environment Variable

Upang i-configure ang mga pansamantalang kredensyal, gagamitin namin ang command na 'set' para sa Windows at pagkatapos ay ibibigay ang halaga ng Access Key ID, Secret Access Key, Session Token, atbp:

Para sa Windows

itakda AWS_ACCESS_KEY_ID =RoleAccessKeyID


Palitan ang RoleAccessKeyID ng Access Key ID na ibinalik ng command sa Hakbang 6.

Para sa Linux OS

i-export AWS_ACCESS_KEY_ID =RoleAccessKeyID


Palitan ang RoleAccessKeyID ng Access Key ID na ibinalik ng command sa Hakbang 6.

Ang Access Key ay na-configure:


Susunod, i-configure namin ang Secret Access Key sa pamamagitan ng paggamit ng command na 'set' para sa Windows:

Para sa Windows

itakda AWS_SECRET_ACCESS_KEY =RoleSecretKey


Palitan ang RoleSecretKey ng halaga ng Secret Access Key na ibinalik ng command sa Hakbang 6.

Para sa Linux OS

i-export AWS_SECRET_ACCESS_KEY =RoleSecretKey


Palitan ang AWS_SECRET_ACCESS_KEY ng Secret Access Key na ibinalik ng command sa Hakbang 6.

Matagumpay na na-configure ang Secret Access Key:


Panghuli, iko-configure namin ang session token para maitatag ang session-based na login. Para sa layuning ito, gamitin ang nabanggit na utos sa ibaba:

Para sa Windows

itakda AWS_SESSION_TOKEN =RoleSessionToken


Palitan ang RoleSessionToken ng halaga ng Session Token na ibinalik ng command sa Hakbang 6.

Para sa Linux OS

i-export AWS_SESSION_TOKEN =RoleSessionToken


Palitan ang RoleSessionToken ng halaga ng Session Token na ibinalik ng command sa Hakbang 6.

Ang halaga ng Session Token ay matagumpay na na-configure:


Upang kopyahin ang halaga ng Session Token mula sa CMD, pindutin “CTRL + SHIFT+ C” .

Pagkatapos i-configure ang mga variable ng kapaligiran, i-verify sa pamamagitan ng paggamit ng sumusunod na command kung ang tungkulin ay ipinapalagay ng user:

aws sts get-caller-identity


Ang output ng command ay nagpapatunay na ang tungkulin ng IAM ay naging matagumpay na ipinapalagay ng user bilang ang pagbabalik ng ARN “arn:aws:sts::123456789012:assumed-role/user-role/AWSCLI-Session” sa halip na “arn:aws:iam::123456789012:user/demo-user”:


Dahil ang tungkulin ay naglalaman ng pahintulot sa ReadOnlyAccess, dapat na ma-enlist ng user ang mga bucket ngayon. Para sa layuning ito, ibigay ang sumusunod na command sa CLI:

aws s3 ls


Ang output ng command ay matagumpay na naitala ang lahat ng S3 bucket na kasalukuyang naka-configure sa loob ng AWS account:


Gayunpaman, hindi maa-access ng user ang serbisyo ng EC2 dahil ang ipinapalagay na tungkulin ay walang pahintulot para sa serbisyo ng EC2. Upang i-verify ito, gamitin ang sumusunod na command:

aws ec2 describe-instances --tanong 'Mga Pagpapareserba[*].Mga Instance[*].[VpcId, InstanceId, ImageId, InstanceType]'


Dati, na-access ng user ang impormasyon ng serbisyo ng EC2. Gayunpaman, sa pagpapatupad ng nabanggit na utos, isang 'Walang pahintulot' may naganap na error. Matagumpay na nahawakan ng user ang tungkulin ng IAM:


Ang lahat ng ito ay mula sa seksyong ito.

Tip sa Bonus: I-unset ang Mga Variable ng Environment

Upang bumalik sa user ng IAM ibig sabihin, demo-user, maaaring alisin ng user ang mga variable ng kapaligiran sa pamamagitan ng pagtatakda ng mga variable ng Environment sa mga walang laman na string. Ang mga sumusunod ay ang mga utos na ibinigay:

Para sa Windows

ITAKDA AWS_ACCESS_KEY_ID =
ITAKDA AWS_SECRET_ACCESS_KEY =
ITAKDA AWS_SESSION_TOKEN =


Para sa Linux

Gamitin ang nabanggit na utos sa ibaba:

hindi nakatakda AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN


Ang mga nabanggit na command ay aalisin sa pagkakatakda ang mga variable ng kapaligiran:


Pagkatapos isagawa ang mga utos sa itaas, dapat na ngayong ibalik ng console ang 'demo-user' bilang kasalukuyang naka-log-in na user sa halip na ang ipinapalagay na tungkulin i.e., tungkulin ng user. Para sa layuning ito, gagamitin namin ang sumusunod na utos:

aws sts get-caller-identity


Ang output ng command ay nagpapahiwatig na ang kasalukuyang naka-log-in na user ay demo-user:


Katulad nito, upang mag-login bilang root user, sundin ang 'C:\Users%USERPROFILE%.aws' path at i-click ang file ng mga kredensyal:


Sa loob ng file ng mga kredensyal, palitan ang mga halaga ng Access Key at Secret Access Key ng Access at Secret Access Key ng root user:


Ibigay ang sumusunod na command sa CLI upang i-verify kung ang mga kredensyal ay na-configure nang maayos:

aws configure


Dito, sa larawan sa ibaba, makikita natin na matagumpay na na-configure ang Access key at Secret Access key ng root user:


Iyon ay mula sa seksyong ito ng tutorial.

Paraan 2: Paggamit ng –profile Parameter

Ang isa pang paraan ng pagpapalagay ng tungkulin ay sa pamamagitan ng paggamit ng field na “–profile” sa CLI. Ang seksyong ito ng artikulo ay nagpapakita ng praktikal na pagpapatupad ng pagpapalagay ng isang tungkulin sa AWS sa pamamagitan ng –profile. Nasa ibaba ang mga hakbang para dito:

Hakbang 1: Gumawa ng IAM User

Upang lumikha ng IAM user, mag-log in sa root user account sa pamamagitan ng CLI sa pamamagitan ng paggamit ng sumusunod na command:

aws configure


Ang mga kredensyal ay na-configure na sa loob ng CLI para sa demo na ito tulad ng ipinapakita sa output ng command:


Matuto pa:

Upang lumikha ng user ng IAM, ibigay ang sumusunod na command sa CLI:

aws iam create-user --user-name profile-user


Matagumpay na nalikha ang gumagamit. I-save ang ARN ng user gaya ng ipinapakita sa larawan sa ibaba. Ang ARN ng user ng IAM na ito ay gagamitin mamaya sa tutorial na ito. Sa kasalukuyan, walang mga pahintulot na nauugnay sa user ng IAM na ito:


Magbasa pa:

Hakbang 2: Gumawa ng Access Key

Sa AWS, ang bawat user ay bibigyan ng isang pares ng Access key para sa pag-login. Upang gawin ang Access Keys para sa user na ito, ibigay ang sumusunod na command dito:

aws iam create-access-key --user-name profile-user


Ang command na ito ay nagbabalik ng isang set ng Access Keys. I-save ang AccessKeyId at SecretAccessKey dahil kakailanganin ito habang nagla-log in sa AWS account:


Ngayon kung mag-log in tayo sa AWS CLI gamit ang AccessKeyId na ito, at SecretAccessKey, at i-access ang anumang mapagkukunan hal. S3 bucket, ang 'Walang pahintulot' magaganap ang error. Ito ay dahil sa kasalukuyan ay walang mga pahintulot na nauugnay sa IAM user. Upang mag-log in sa AWS CLI, gamitin ang sumusunod na command at ibigay ang Access Key ID at Secret access key gaya ng ginawa kanina:

aws configure --profile profile-user


Palitan ANG 'profile-user' gamit ang IAM user name na iyong ibinigay habang ginagawa ang user.

Dito, matagumpay kaming naka-log in sa AWS CLI bilang user ng IAM:


Upang i-verify kung ang user na ito ay may anumang read-only na pahintulot para sa S3 bucket, ibigay ang sumusunod na command sa CLI:

aws s3 ls --profile profile-user


Palitan ang profile-user ng IAM user name na iyong ibinigay habang ginagawa ang user.

Dahil ang user na ito ay hindi nabigyan ng anumang pahintulot ng root user, magreresulta ito sa ' Walang pahintulot ” error:

Hakbang 3: Gumawa ng Patakaran sa Pagtitiwala at Tungkulin ng IAM

Tinutukoy ng isang patakaran sa tiwala kung ang isang user o isang mapagkukunan ng AWS ay isang pinagkakatiwalaang entity para sa pag-ako ng tungkulin at pagkuha ng mga pahintulot. Ginagawa ang trust relationship na ito sa pamamagitan ng pagtukoy sa ARN ng IAM user o AWS resource sa loob ng Patakaran sa Pahintulot.

Upang lumikha ng isang patakaran sa pagtitiwala sa loob ng IAM, ibigay ang sumusunod na command sa CLI:

Para sa Windows

notepad trust-policy.json


Palitan ANG trust-policy.json na may pangalan ng iyong kagustuhan para sa patakaran.

Para sa Linux OS

kasi trust-role-policy.json


Palitan ANG trust-policy.json na may pangalan ng iyong kagustuhan para sa patakaran.

Maaaring gumamit ang mga user ng anumang text editor na kanilang kagustuhan. Para sa demo na ito, ginagamit namin ang notepad:


Bubuksan nito ang notepad para sa paggawa ng patakaran sa tiwala. Idikit ang sumusunod na patakaran sa loob ng notepad at pindutin “CTRL + S” mula sa keyboard upang ilapat at i-save ang mga pagbabago:

{
'Bersyon' : '2012-10-17' ,
'Pahayag' : {
'Epekto' : 'Payagan' ,
'Major' : {
'AWS' : 'arn:aws:iam::012345678910:user/profile-user'
} ,
'Aksyon' : 'sts:AssumeRole'
}
}


Sa patakaran sa itaas: AWS: Palitan ang value na “arn:aws:iam::012345678910:user/policy-user” ng ARN ng user ng IAM na ginawa kanina sa seksyong ito.

Ang patakaran ay na-edit sa loob ng notepad:


Susunod, gagawa kami ng tungkulin ng IAM at ilakip dito ang patakaran sa pagtitiwala sa itaas. Gamitin ang sumusunod na command upang lumikha ng isang tungkulin ng IAM:

aws iam create-role --pangalan ng tungkulin ang aking papel --assume-role-policy-document file: // trust-policy.json


Sa nabanggit na utos:

    • –pangalan ng tungkulin: Palitan ANG 'ang aking papel' gamit ang pangalan ng tungkulin ng IAM na iyong pinili.
    • –assume-role-policy-document: Sa field na ito, palitan ang termino “trust-policy.json” gamit ang pangalan ng iyong IAM trust policy

Matagumpay na nalikha ang tungkulin ng IAM. I-save ang tungkulin ng IAM. I-save ang ARN ng tungkulin ng IAM gaya ng naka-highlight sa sumusunod na larawan. Gagamitin ang ARN na ito habang kino-configure ang profile ng user:


Tinutukoy ng patakaran sa tiwala na nakalakip sa IAM kung pinagkakatiwalaan o hindi ang user sa pag-ako sa tungkulin. Tinutukoy ng Patakaran sa Pahintulot kung ang tungkulin ng IAM ay may kinakailangang pahintulot na magsagawa ng isang partikular na pagkilos sa mga serbisyo ng AWS o wala.

Dahil ang patakaran sa pagtitiwala ay naka-attach sa tungkulin ng IAM, ang susunod na hakbang ay ilakip ang patakaran sa pahintulot sa tungkulin ng IAM. Gagamitin ang command na nabanggit sa ibaba upang ilakip ang patakaran sa pahintulot sa tungkulin ng IAM:

aws iam attach-role-policy --pangalan ng tungkulin ang aking papel --patakaran-arn 'arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess'


Dito, ang patakaran sa pahintulot ay naka-attach sa tungkulin ng IAM sa pamamagitan ng CLI:

Hakbang 4: I-configure ang Profile

Para maisagawa ng user ang tungkuling ito, iko-configure muna namin ang profile na ito sa loob ng mga kredensyal ng AWS. Upang ilakip ang mga pansamantalang kredensyal na ito, ibigay ang sumusunod na command:

notepad ~ / .aws / config


Tip sa Bonus: Lutasin ang “Path not specified” sa Notepad

Ang config file ay maglalaman ng [default] na setting ng AWS CLI. Gayunpaman, kung ipinapakita ng notepad ang 'Hindi mahanap ng system ang tinukoy na landas', ipasok ang nabanggit na command:

notepad .aws / config


Maaaring gamitin ng mga gumagamit ng Linux ang 'kasi' editor para sa pag-configure ng profile. Maaaring gamitin ng mga user ang anumang editor ng kanilang kagustuhan upang buksan ang config file ng AWS sa lokal na makina:


Sa loob ng config file na binuksan sa Notepad, i-edit ang mga sumusunod na pagbabago:

[ profile profile-user ]
role_arn = arn:aws:iam::012345678910:role / ang aking papel
source_profile =profile-user


Sa snippet sa itaas:

    • role_arn: Palitan ang value na “arn:aws:iam::012345678910:role/myrole” ng ARN ng tungkulin ng IAM.
    • source_profile: Sa field na ito, ibigay ang pangalan ng user ng IAM na ginawa sa Hakbang 1 ng paraang ito.

Pagkatapos gawin ang mga kinakailangang pagbabago, pindutin ang “CTRL + S” mula sa keyboard upang ilapat at i-save ang mga pagbabago:


Ngayon, upang i-verify kung maaari na ngayong ilista ng user ang mga S3 bucket o hindi, ibigay ang sumusunod na command sa CLI:

aws s3 ls --profile profile-user


Sa utos sa itaas: –profile-user: Sa field na ito, palitan ang value na 'profile-use' ng pangalan na iyong tinukoy sa config file.

Dahil tinukoy namin ang 'profile-user' sa loob ng config file, samakatuwid, gagamitin namin ang parehong pangalan sa command sa CLI. Dati ay hindi na-access ng user ang S3 na serbisyo ng AWS dahil walang mga pahintulot na itinalaga dito. Ang tungkulin ng IAM ay may pahintulot ng 'ReadOnlyAccess' ng S3 bucket at samakatuwid, sa pamamagitan ng pagpapalagay sa tungkuling ito, maaaring ilista ng user ang mga bucket mula sa S3 Dashboard:


Iyon ay mula sa paraang ito ng tutorial.

Paraan 3: Paggamit ng MFA (Multi-Factor Authentication)

Sa pamamagitan ng pagpapagana sa Multi-Factor Authentication, maaaring mag-configure ang user ng karagdagang layer ng seguridad sa account ng user. Kapag pinagana ang MFA, hindi maa-access ng mga hindi awtorisadong user ang account ng isang user kahit na magbigay sila ng password at username. Ang MFA ay isang anim na digit na code na kinakailangan para sa pag-log in sa account. Para matuto pa tungkol sa Multi-factor authentication, sumangguni sa artikulong ito:

Ang mga sumusunod ay ang mga hakbang upang magkaroon ng tungkulin sa MFA sa pamamagitan ng CLI:

Hakbang 1: Gumawa ng IAM User at I-enable ang MFA

Para sa hakbang na ito, maaaring gamitin ng user ang CLI para sa paggawa ng user o i-access ang AWS Management Console. Mag-log in sa root user account gamit ang sumusunod na command:

aws configure


Ang output ng command ay ibinibigay tulad ng sumusunod:


Upang lumikha ng isang user, ibigay ang sumusunod na command sa CLI:

aws iam create-user --user-name mfa-user


Sa utos sa itaas: –user-name: Palitan ANG “mfa-user” gamit ang IAM user name na iyong pinili.

Matagumpay na nalikha ang gumagamit. I-save ang ARN ng user dahil kakailanganin ito mamaya sa seksyong ito. Sa kasalukuyan, ang user na ito ay hindi nabigyan ng anumang mga pahintulot:


Upang paganahin ang MFA, bisitahin ang AWS Management Console at hanapin ang serbisyo ng IAM. Mag-click dito mula sa mga ipinapakitang resulta:


Mag-click sa opsyong Mga User mula sa kaliwang navigation pane ng serbisyo ng IAM. Mula sa dashboard ng Mga User, i-click ang user name para i-configure ang MFA:


Sa susunod na interface, i-tap ang 'Mga kredensyal sa seguridad' opsyon:


Mag-scroll pababa sa Multi-Factor Authentication seksyon at i-click ang “Magtalaga ng MFA device” pindutan:


Magbigay ng a makahulugang pangalan nasa Pangalan ng device field ng teksto sa ipinapakitang interface:


Mag-scroll pababa sa seksyon ng MFA device. Ang user ay bibigyan ng iba't ibang opsyon para sa pagpapagana ng MFA gaya ng pag-scan sa QR code, sa pamamagitan ng Security Key o Hardware TOTP token. Para sa demo na ito, piliin ang 'Authenticator app' opsyon:


I-tap ang “Susunod” button sa ibaba ng interface upang magpatuloy pa:


I-click ang 'Ipakita ang QR code' tulad ng ipinapakita sa larawan sa ibaba:


Ilunsad ang application sa iyong mobile o laptop upang i-scan ang QR code. I-tap ang “+” opsyon mula sa Symantec VIP interface:


Sa Play store, pinangalanan ang Symantec VIP bilang VIP Access.

Sa susunod na interface ng Symantec VIP, i-click ang I-scan ang QR code button sa ibaba ng interface:


I-scan ang QR code mula sa AWS MFA Ang interface ng app ng Authenticator ipinapakita. Ang code na ito ay bubuo ng isang serye ng mga code na kakailanganin para sa pag-log in sa IAM user's console:


Ang Symantec VIP app ay bubuo anim na digit na OTP pagkatapos i-scan ang QR code. Ang mga code na ito ay patuloy na darating pagkatapos ng bawat 30 segundo . Ang screenshot sa ibaba ay nagpapakita ng dalawang code na nabuo:


Ibigay ang mga code sa MFA code 1 at MFA code 2 mga text-field sa interface ng Authenticator App ng MFA. I-click ang 'Magdagdag ng MFA' button pagkatapos upang paganahin ang pag-andar:


Ang MFA ay matagumpay na pinagana para sa gumagamit ng IAM. Ito ay mapapatunayan ng “Multi-factor authentication (MFA)” seksyon ng 'Mga kredensyal sa seguridad' tab ng Gumagamit ng IAM . Mula sa seksyong ito, i-save ang halaga ng Identifier dahil kakailanganin ito habang ipinapalagay ang tungkulin:

Hakbang 2: Mag-attach ng Patakaran sa User

Para sa isang user na gumanap ng isang tungkulin, dapat na mailista ng user ang tungkulin ng IAM upang matukoy kung aling tungkulin ang dapat gawin at ang pahintulot para sa pag-ako ng tungkulin. Upang bigyan ang user ng kinakailangang pahintulot, sundin ng Paraan 1 sa tutorial na ito

Hakbang 3: Lumikha ng Patakaran sa Pagtitiwala at tungkulin ng IAM

Ang susunod na hakbang ay gumawa ng patakaran sa Trust para matukoy kung ang user ay pinagkakatiwalaang entity o hindi. Ang Patakaran sa Pagtitiwala na ito ay ikakabit sa tungkulin ng IAM. Upang gawin ang patakaran sa Trust at tungkulin ng IAM, mag-navigate sa Command Prompt at sundin ng Paraan  1 sa artikulong ito.

Hakbang 4: Gumawa ng Access Key

Para mapahintulutan at ma-authenticate ang user, nabuo ang isang pares ng Access Keys na kakaiba sa buong AWS platform. Ginagamit ang Key pairs na ito sa oras ng pag-log in sa AWS account. Upang gawin ang Mga Access Key para sa user ng IAM, sundin ang ng Paraan 1 sa artikulong ito.

Hakbang 5: I-configure ang Mga Kredensyal

Maa-access lang ng user ng AWS ang mga mapagkukunan at serbisyo ng AWS kung na-configure nang tama ang mga kredensyal. Sa seksyong ito ng Paraan, iko-configure namin ang mga kredensyal ng user ng IAM sa pamamagitan ng pagbibigay ng Access Key at Secret Access Key sa Command Line Interface. Para sa layuning ito, sundin ang ng Paraan 1 ng tutorial na ito.

Hakbang 6:  Kunin ang tungkulin ng IAM

Matapos matagumpay na ilakip ang tungkulin ng IAM at ipatupad ang patakaran sa Trust, maaari na ngayong gamitin ng user ang tungkulin ng IAM. Para sa layuning ito, ibigay ang sumusunod na command sa CLI:

aws iam create-access-key --user-name mfa-user


Dito matagumpay na nalikha ang susi para sa gumagamit ng IAM. I-save ang AccessKeyId at SecretAccessKey dahil kakailanganin ang mga ito para sa pag-log in sa AWS account:


Ang susunod na hakbang ay i-configure ang Access Keys sa loob ng AWS CLI. Gamitin ang nabanggit na utos para sa pag-configure ng CLI:

aws configure


Ibigay ang Access Key at Secret Access Key sa CLI para sa mga configuration:


Upang i-verify kung ang user ng IAM ay naka-log in sa AWS CLI, gamitin ang sumusunod na command:

aws sts get-caller-identity


Ang output ng command ay ibinigay bilang mga sumusunod na nagpapahiwatig na ang user ay matagumpay na naka-log in sa AWS console:


May pahintulot ang user na ilista ang mga tungkulin ng IAM sa loob ng AWS account. Ang utos na ibinigay sa ibaba ay ginagamit upang ilista ang mga tungkulin ng IAM:

aws iam list-roles --tanong 'Mga Tungkulin[?RoleName == 'mfa-role'].[RoleName, Arn]


Sa utos sa itaas: RoleName: Sa loob ng field na ito, palitan ang value na 'mfa-role' ng pangalan ng iyong tungkulin sa IAM.

Ang output ng command ay ibinibigay tulad ng sumusunod:


Para ipagpalagay ang tungkulin ng IAM sa MFA, gamitin ang command na assume role na may mga karagdagang parameter gaya ng serial number at token code. Ibigay ang sumusunod na utos sa CLI:

aws sts assume-role --role-arn 'arn:aws:iam::123456789012:role/m-role' --role-session-name AWSCLI-Session --serial-number 'arn:aws:iam::012345678910:mfa/admindevice' --token code '123456'


Sa utos sa itaas:

    • –role-arn: Palitan ang halaga ng field na ito ng ARN ng iyong tungkulin sa IAM.
    • –role-session-name: Sa field na ito, maaaring magbigay ang user ng anumang napiling pangalan ng session.
    • –serial-number: Palitan ang halaga ng field na ito ng halaga ng Identifier mula sa interface ng MFA na na-save nang mas maaga.
    • -token code: Ang halagang ito ay papalitan ng kasalukuyang code na ipinapakita sa Symantec VIP interface.

Ang kasalukuyang code na ipinapakita sa Symantec VIP ay ibinigay bilang mga sumusunod. Ang parehong code ay gagamitin sa –token-code na halaga ng command:


Ang output ng command ay maglalaman ng mga pansamantalang kredensyal tulad ng Session Token, Access Key, Secret Access key, atbp:

Hakbang 7: I-configure ang Mga Variable ng Environment

Gagamitin na ngayon ang mga access key at ang session token na ibinalik para itatag ang session-based na login at para kunin ang tungkulin. Ang detalyadong pagpapatupad para sa pag-configure ng kapaligiran ay tinalakay sa ng Paraan 1.

Pangwakas na Kaisipan

Upang maisagawa ang isang tungkulin gamit ang CLI, mayroong tatlong paraan i.e., sa pamamagitan ng STS (security token service), –profile parameter, o ang MFA (Multi-Factor Authentication). Para magkaroon ng tungkulin ang isang user, dapat munang magtatag ng isang patakaran sa Trust. Tinutukoy ng patakarang ito ng tiwala kung ang user ay isang pinagkakatiwalaang entity o hindi. Kinakailangan ang functionality na ito dahil tinutugunan nito ang mga alalahanin sa seguridad ng mga eksperto sa IT at indibidwal. Higit pa rito, maaari lamang isagawa ng user ang tungkulin kung nilagyan ng mga kinakailangang pahintulot.

Kapag ang isang user ay may tungkulin sa AWS, ang isang session-based na login ay gagawin upang magbigay ng limitadong oras na access sa user na may mga gustong pahintulot. Ang isang token ay nabuo na mag-e-expire pagkatapos ng isang partikular na oras at sa gayon, hindi na magagawa ng user ang administratibong gawain gamit ang mga mapagkukunan ng AWS. Ang artikulong ito ay nagbibigay ng praktikal na pagpapatupad ng tatlong pamamaraan para sa pag-ako ng isang papel sa AWS CLI.