2017-10-11 38 views
0

Je souhaite être en mesure d'affecter un jeton d'API basé sur le temps à un utilisateur AWS non administrateur, ce qui donne à cet utilisateur des privilèges d'administrateur temporaires pour tous les services AWS.AWS IAM STS: comment créer un administrateur temporaire?

Pourquoi je veux ça? Parce que quand je développe sur AWS sur mon compte personnel J'aime être en mesure d'avoir un accès admin à chaque service, mais je ne veux pas avoir une paire d'informations d'identification effacées cleartext assis dans mon fichier .aws/credentials. Donc, je veux être en mesure d'assumer un rôle IAM qui va élever un utilisateur à l'administration et utiliser STS pour attribuer un jeton d'API basé sur le temps. Au travail, nous utilisons la fédération via un serveur SAML afin que les utilisateurs aient un accès temporel quel que soit leur rôle: dev, admin, etc, mais je ne veux pas avoir à régler tout cela uniquement avoir un jeton d'API basé sur le temps. J'ai lu les docs AWS et discuté dans #aws et jusqu'à présent la réponse que j'ai est de faire une politique de confiance IAM que les disques codes une extrémité de temps:

{ 
"Version": "2012-10-17", 
"Statement": [ 
    { 
     "Effect": "Allow", 
     "Action": "*", 
     "Resource": "*", 
     "Condition" : {"DateLessThan": {"aws:CurrentTime" : "2017-10-30T00:00:00Z"}} 
    } 
] 
} 

Mais je ne veux pas coder en dur manuellement et mettez à jour cette stratégie à chaque fois et préférez utiliser STS pour attribuer un jeton d'API basé sur le temps. Toute opinion serait très appréciée.

+0

Je n'ai pas le temps d'écrire une réponse, mais cela devrait vous donner les informations dont vous avez besoin: https://blog.stitchdata.com/role-playing-with-aws-c9eaebcc6c98 – kdgregory

+0

Cependant , il y a une plus grande question: _why_ ne voulez-vous pas avoir des informations en clair dans '.aws/credentials'? Je suppose que vous prenez des précautions de sécurité raisonnables (par exemple, disque crypté, mot de passe fort pour accéder à votre ordinateur personnel), et n'avez pas l'habitude de stocker vos informations d'identification dans des endroits aléatoires. Pour que les informations d'identification temporaires soient plus sûres que les informations d'identification permanentes, vous devez vous authentifier pour recevoir ces informations d'identification. La rotation régulière des pouvoirs peut être suffisante. Vous avez 2FA activé sur votre connexion, non? – kdgregory

+0

J'ai tout ce que vous avez dit sauf 2FA. Je veux des informations d'identification temporaires car elles sont meilleures que les informations permanentes. Nous utilisons des creds temp au travail avec * tout * vous avez mentionné et c'est une bonne solution. Je veux un moyen de reproduire cela pour mes projets personnels. C'est tout. –

Répondre

0

Avez-vous essayé GetSessionToken, reportez-vous this

Demande d'échantillon:

https://sts.amazonaws.com/ 
?Version=2011-06-15 
&Action=GetSessionToken 
&DurationSeconds=3600 
&SerialNumber=YourMFADeviceSerialNumber 
&TokenCode=123456 
&AUTHPARAMS 
+1

Je pense que vous devez élaborer. –

0

STS et rôles IAM:

1) Créez votre rôle dans la console AWS.

2) Utilisez l'AWS CLI pour vous délivrer de nouvelles informations d'identification à l'aide de ce rôle. Vous pouvez créer un script batch avec la commande pour simplifier l'exécution.

Exemple:

aws sts assume-role --role-arn arn:aws:iam::123456789012:role/xaccounts3access --role-session-name s3-access-example 

La sortie de la commande contient une clé d'accès, clé secrète et jeton de session que vous pouvez utiliser pour vous authentifier auprès AWS.

Temporary credentials