Comptes
Organisation des comptes
- Les comptes sont organisés par niveau de difficulté :
- comptes EASY
- comptes MEDIUM
- comptes HARD
Les comptes joueurs sont nommés de la manière suivante : ippon-gameday-DIFFICULTE-ID
Exemple ippon-gameday-easy-01
Ressources nécessaires aux comptes AWS des participants
Role gmd_admin
Chaque sous-compte "joueur" sélectionné doit posséder un rôle "gmd_admin" qui donne des accès administrateurs au compte ippon-gameday-master. Cf role_gmd_admin.tf
Ces rôles sont permanents et sont les seules ressources non automatisables du Game Day, chaque rôle doit être créé sur chaque compte en amont. Ce rôle est exclu d'aws-nuke dans le repo gameday-nuke
Bus des évènements
Le compte Master doit posséder un bus EventBridge et une pile SQS qui vont permettre d'enregistrer chaque évènements des comptes joueurs et permettre le scoring. Chaque sous-compte "joueur" possède une règle cloudwatch pour remonter les évènements à la pile SQS du Master, il doit également avoir une policy "teamPolicy" qui permet de restreindre les droits des joueurs aux ressources souhaitées pour chaque scénario seulement.
Ces ressources sont permanentes et exclues du gameday-nuke, elles ne sont normalement pas supprimées, dans le cas contraire l'administrateur doit les créer
Ajouter un nouveau compte
- Le compte doit être rattaché à l'OU qui correspond à son niveau de difficulté
- Ajouter un rôle gmd_admin (gmd_admin_dev) avec les droits administrateurs donnés au compte ippon-gameday-master (pour permettre les assume_roles)
- Faire une demande à l'IMS pour la création de nouveaux comptes AWS avec le rôle gmd_admin pour la prod et gmd_admin_dev pour la dev déjà présent en suivant ce modèle d'alias
ippon-gameday-DIFFICULTE-XX
- Modifier le fichier de configuration suivant: repo GameDay/gameday-master/accounts.json pour la prod et repo GameDay/gameday-master/accounts_dev.json pour la dev
en ajoutant à la liste le modèle suivant:
{
"id": "ID_DU_COMPTE",
"type": "DIFFICULTE", //easy ou medium ou hard
"name": "ALIAS_DU_COMPTE"
},
-
Commit et push sur le master
-
Lancer la pipeline Setup-Prod-Accounts (Setup-Dev-Accounts) au niveau du stage Accounts de GameDay/gameday-infra/pipelines/
-
Lancer la pipeline Setup-Prod-ECR (Setup-Dev-Accounts) au niveau du stage Repo de GameDay/scenario-easy-01-simple-webapp/master-simple-webapp/pipelines/
-
Les comptes seront uniquement utilisables si vous avez relancer le service ECS du Gameday
-
Cette source est appelé dans les fichiers suivants:
-
GameDay/gameday-master/accounts/admin-server/src/accounts.ts
- La structure de la liste dans ce fichier est modifiée en :
{
['ID_DU_COMPTE_A_AJOUTER']: {
accountId: 'ID_DU_COMPTE_A_AJOUTER',
name: 'NOM_DU_COMPTE',
masterPassword: generatePassword(PASSWORD_LENGTH),
level: LEVEL.EASY // ou LEVEL.MEDIUM ou LEVEL.HARD
}
} -
Gameday/scenario-easy-01-simple-webapp/master-simple-webapp/blob/master/ecr/get_accounts.sh
- Les repo ECR créées par Terraform pour stocker les images Docker des ressources du scenario easy 01 doivent être accessibles par les comptes joueurs, il faut donc les ajouter dans la variable (liste)
accounts= [
qui créera les permissions d'accès dans le terragrunt.hcl.
- Les repo ECR créées par Terraform pour stocker les images Docker des ressources du scenario easy 01 doivent être accessibles par les comptes joueurs, il faut donc les ajouter dans la variable (liste)