Outils pour utilisateurs

Outils du site


cloud:aws:toc

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
cloud:aws:toc [2020/11/18 22:17] sgariepycloud:aws:toc [2022/03/29 19:27] – [Login par requêtes directes] sgariepy
Ligne 1: Ligne 1:
 ====== AWS ====== ====== AWS ======
  
-AWS est le service could d'Amazon.+AWS est le service cloud d'Amazon.
  
 ====== CLI ====== ====== CLI ======
Ligne 44: Ligne 44:
 mfa_serial=arn:aws:iam::987653456789:mfa/myusername mfa_serial=arn:aws:iam::987653456789:mfa/myusername
 </code> </code>
 +La valeur de ''source_profile'' fait référence au nom de la section dans le fichier ''credential'', dans l'exemple plus haut c'est ''aws_account_name_or_username'' (qui est lui-même un exemple bidon).
 +
 +
 +
 +Outils qui peuvent aider à gérer ça:
 +
 +  * [[https://github.com/rik2803/aws-sts-assumerole|assumerole]]
 +
 +Exemple:
 +
 +  $  aws sts assume-role --role-arn arn:aws:iam::XXXXXXXXXXXX:role/org-super_users --role-session-name "RoleSessionName1" --profile org-super_users --output json > assume-role-output.txt
  
 Source: [[https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html|Using an IAM role in the AWS CLI]] Source: [[https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html|Using an IAM role in the AWS CLI]]
 +
 +===== Sortie au stdout =====
 +
 +Les sorties de commandes peuvent se faire dans nano, ce qui n'est pas idéal pour copier les informations.  L'option ''cli_pager='' (avec aucune valeur) dans le ''~/.aws/config'' ''[default]'' ne semble pas fonctionner, comme la [[https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-output.html|documentation le suggère]].
 +
 +Plutôt faire avec un export:
 +
 +
 +  $ export AWS_PAGER=
 +
 +
  
  
Ligne 66: Ligne 88:
 ====== Cognito ====== ====== Cognito ======
  
-Ressources: +===== Login par requêtes directes =====
- +
-  * [[https://www.npmjs.com/package/amazon-cognito-identity-js|Amazon Cognito Identity SDK for JavaScript]] (package npm) +
-  * [[https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-verifying-a-jwt.html|Verifying a JSON Web Token]] +
-  * [[https://github.com/amazon-archives/amazon-cognito-identity-js|amazon-archives/amazon-cognito-identity-js]] (repo GitHub archivé) +
-  * [[https://adayinthelifeof.nl/2020/05/20/aws.html|Description des services en une phrase]] +
  
 +Les requêtes ci-dessous sont effectuées avec **REST Client**, extension de VS Code.
  
 +Prérequis:
  
-====== GameLift ======+  * L'application dans le User Pool n'a pas de Client Secret de configuré 
 +  * L'utilisateur existe dans le user pool.  Il peut y avoir un mot de passe initial avec le statut //Force change password//.
  
- +Pour effectuer des tests, par exemple pour obtenir un JWT d'identification, il faut appeler le service IDP de Cognito avec un initAuth:
-Accéder par SSH sur une instance Linux:+
  
 <code> <code>
-aws gamelift describe-instances --fleet-id fleet-c938a965-0d10-4bd5-bba6-912f5578aa45 +POST https://cognito-idp.us-east-1.amazonaws.com/ 
-</code>+Content-Type: application/x-amz-json-1.1 
 +X-Amz-Target: AWSCognitoIdentityProviderService.InitiateAuth
  
-Exemple de réponse reçu: 
- 
- 
-<code> 
 { {
-    "Instances": [ +    "AuthParameters" : { 
-        +        "USERNAME" : "test@domain", 
-            "Status": "Active",  +        "PASSWORD" : "initialPassword
-            "InstanceId": "i-06bc89c264c000000" +    }
-            "Type": "c5.large",  +    "AuthFlow" : "USER_PASSWORD_AUTH", 
-            "CreationTime": 1605559806.411,  +    "ClientId" : "{{cognitoClientId}}"
-            "DnsName": "ec2-35-153-100-100.compute-1.amazonaws.com",  +
-            "FleetId": "fleet-c938a965-0d10-4bd5-bba6-000000000000",  +
-            "IpAddress": "35.153.100.100",  +
-            "OperatingSystem": "AMAZON_LINUX_2" +
-        } +
-    ]+
 } }
 </code> </code>
  
-Ensuite avec l'instance Id on peut récupérer la clé privée.+Si la réponse retourne un challenge ''NEW_PASSWORD_REQUIRED'', il faut envoyer une requête ''RespondToAuthChallenge'':
  
 <code> <code>
-aws gamelift get-instance-access --fleet-id fleet-c938a965-0d10-4bd5-bba6-000000000000 --instance i-06bc89c264c000000 --query "InstanceAccess.Credentials.Secret" --output text > instancekey.pem +POST https://cognito-idp.us-east-1.amazonaws.com/ 
-</code> +Content-Type: application/x-amz-json-1.
- +X-Amz-Target: AWSCognitoIdentityProviderService.RespondToAuthChallenge
-Il est possible que le port SSH ne soit pas ouvert sur l'instance:+
  
-<code> +{ 
-aws gamelift update-fleet-port-settings --fleet-id fleet-c938a965-0d10-4bd5-bba6-000000000000 --inbound-permission-authorizations "FromPort=22,ToPort=22,IpRange=###.###.###.###/32,Protocol=TCP"+    "ChallengeName": "NEW_PASSWORD_REQUIRED", 
 +    "ChallengeResponses":
 +      "USERNAME" : "test@domain", 
 +      "NEW_PASSWORD" : "newPassword" 
 +    }, 
 +    "ClientId": "{{cognitoClientId}}", 
 +    "Session": "{{initAuth.response.body.Session}}" 
 +}
 </code> </code>
  
 +La réponse au challenge retourne le id token si ça a bien fonctionné.
  
-Donner des permission plus restreintes sur la clé privée, ou bien utiliser ''sudo'' pour le ssh:+ 
 +Obtenir un id token avec un refresh token:
  
 <code> <code>
-sudo ssh -i instancekey.pem gl-user-remote@35.153.207.14 +POST https://cognito-idp.us-east-1.amazonaws.com/ 
-</code> +Content-Type: application/x-amz-json-1.1 
- +X-Amz-Target: AWSCognitoIdentityProviderService.InitiateAuth
  
 +{
 +    "AuthParameters" : {
 +        "REFRESH_TOKEN" : "{{normalAuth.response.body.AuthenticationResult.RefreshToken}}"
 +    },
 +    "AuthFlow" : "REFRESH_TOKEN_AUTH",
 +    "ClientId" : "{{cognitoClientId}}"
 +}
 +</code> 
  
  
  
 +===== Ressources =====
  
  
 +  * [[https://www.npmjs.com/package/amazon-cognito-identity-js|Amazon Cognito Identity SDK for JavaScript]] (package npm)
 +  * [[https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-verifying-a-jwt.html|Verifying a JSON Web Token]]
 +  * [[https://github.com/amazon-archives/amazon-cognito-identity-js|amazon-archives/amazon-cognito-identity-js]] (repo GitHub archivé)
 +  * [[https://adayinthelifeof.nl/2020/05/20/aws.html|Description des services en une phrase]]
  
  
cloud/aws/toc.txt · Dernière modification : 2022/12/10 14:46 de sgariepy