Configuration pour la personnalisation - AWS Control Tower

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration pour la personnalisation

Les sections suivantes décrivent les étapes à suivre pour configurer Account Factory pour le processus de personnalisation. Nous vous recommandons de configurer l'administration déléguée pour le compte hub avant de commencer ces étapes.

Récapitulatif
  • Étape 1. Créez le rôle requis. Créez un rôle IAM qui autorise AWS Control Tower à accéder au compte (hub) où sont stockés les produits Service Catalog, également appelés blueprints.

  • Étape 2. Créez le AWS Service Catalog produit. Créez le AWS Service Catalog produit (également appelé « produit phare ») dont vous aurez besoin pour définir le compte personnalisé comme base de référence.

  • Étape 3. Passez en revue votre plan personnalisé. Inspectez le AWS Service Catalog produit (plan) que vous avez créé.

  • Étape 4. Appelez votre plan pour créer un compte personnalisé. Entrez les informations relatives au produit et les informations relatives au rôle dans les champs appropriés dans Account Factory, dans la console AWS Control Tower, lors de la création du compte.

Étape 1. Créez le rôle requis

Avant de commencer à personnaliser les comptes, vous devez configurer un rôle contenant une relation de confiance entre AWS Control Tower et votre compte hub. Lorsqu'il est assumé, le rôle accorde à AWS Control Tower l'accès pour administrer le compte du hub. Le rôle doit être nommé AWSControlTowerBlueprintAccess.

AWS Control Tower assume ce rôle pour créer une ressource de portefeuille en votre nom AWS Service Catalog, puis pour ajouter votre plan en tant que produit Service Catalog à ce portefeuille, puis pour partager ce portefeuille, ainsi que votre plan, avec votre compte membre lors de la mise en service du compte.

Vous allez créer le AWSControlTowerBlueprintAccess rôle, comme expliqué dans les sections suivantes.

Accédez à la console IAM pour configurer le rôle requis.

Pour configurer le rôle dans un compte AWS Control Tower inscrit
  1. Fédérez ou connectez-vous en tant que principal dans le compte de gestion AWS Control Tower.

  2. Depuis le principal fédéré du compte de gestion, assumez ou changez de rôle pour accéder au AWSControlTowerExecution rôle du compte AWS Control Tower inscrit que vous avez sélectionné pour servir de compte Blueprint Hub.

  3. À partir du AWSControlTowerExecution rôle figurant dans le compte AWS Control Tower inscrit, créez le AWSControlTowerBlueprintAccess rôle avec les autorisations et les relations de confiance appropriées.

Note

Pour respecter les directives relatives aux AWS meilleures pratiques, il est important que vous vous déconnectiez du AWSControlTowerExecution rôle immédiatement après l'AWSControlTowerBlueprintAccessavoir créé.

Pour éviter toute modification involontaire des ressources, le AWSControlTowerExecution rôle est destiné à être utilisé uniquement par AWS Control Tower.

Si votre compte Blueprint Hub n'est pas inscrit à AWS Control Tower, le AWSControlTowerExecution rôle n'existera pas dans le compte et il n'est pas nécessaire de l'assumer avant de continuer à le AWSControlTowerBlueprintAccess configurer.

Pour configurer le rôle dans un compte de membre non inscrit
  1. Fédérez ou connectez-vous en tant que principal au compte que vous souhaitez désigner comme compte hub, selon la méthode de votre choix.

  2. Lorsque vous êtes connecté en tant que principal du compte, créez le AWSControlTowerBlueprintAccess rôle avec les autorisations et les relations de confiance appropriées.

Le AWSControlTowerBlueprintAccessrôle doit être configuré de manière à accorder la confiance à deux principaux :

  • Le principal (utilisateur) qui exécute AWS Control Tower dans le compte de gestion AWS Control Tower.

  • Le rôle indiqué AWSControlTowerAdmin dans le compte de gestion AWS Control Tower.

Voici un exemple de politique de confiance, similaire à celle que vous devrez inclure pour votre rôle. Cette politique illustre la meilleure pratique consistant à accorder un accès avec le moindre privilège. Lorsque vous établissez votre propre politique, remplacez le terme YourManagementAccountIdpar l'identifiant de compte réel de votre compte de gestion AWS Control Tower, et remplacez le terme YourControlTowerUserRolepar l'identifiant du rôle IAM pour votre compte de gestion.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::YourManagementAccountId:role/service-role/AWSControlTowerAdmin", "arn:aws:iam::YourManagementAccountId:role/YourControlTowerUserRole" ] }, "Action": "sts:AssumeRole" } ] }

Politique d'autorisations requises

AWS Control Tower exige que la politique gérée nommée AWSServiceCatalogAdminFullAccess soit attachée au AWSControlTowerBlueprintAccess rôle. Cette politique fournit des autorisations qui AWS Service Catalog déterminent quand elle autorise AWS Control Tower à administrer votre portefeuille et les ressources de vos AWS Service Catalog produits. Vous pouvez associer cette politique lorsque vous créez le rôle dans la console IAM.

Des autorisations supplémentaires peuvent être requises
  • Si vous stockez vos plans dans Amazon S3, AWS Control Tower a également besoin de la politique AmazonS3ReadOnlyAccess d'autorisation associée au AWSControlTowerBlueprintAccess rôle.

  • Le type de produit AWS Service Catalog Terraform vous oblige à ajouter des autorisations supplémentaires à la politique IAM personnalisée de l'AFC, si vous n'utilisez pas la politique d'administration par défaut. Il les nécessite en plus des autorisations requises pour créer les ressources que vous définissez dans votre modèle Terraform.

Étape 2. Créez le AWS Service Catalog produit

Pour créer un AWS Service Catalog produit, suivez les étapes décrites dans la section Création de produits dans le guide de l'AWS Service Catalog administrateur. Vous ajouterez le plan de votre compte en tant que modèle lorsque vous créerez le AWS Service Catalog produit.

Important

À la suite HashiCorp de la mise à jour des licences Terraform, du AWS Service Catalog changement de support pour les produits Terraform Open Source et de l'approvisionnement des produits vers un nouveau type de produit, appelé External. Pour en savoir plus sur l'impact de cette modification sur l'AFC, notamment sur la manière de mettre à jour les plans de votre compte existants pour le type de produit externe, consultez la section Transition vers le type de produit externe.

Résumé des étapes de création d'un plan
  • Créez ou téléchargez un AWS CloudFormation modèle ou un fichier de configuration Terraform tar.gz qui deviendra le plan de votre compte. Quelques exemples de modèles sont donnés plus loin dans cette section.

  • Connectez-vous à l' Compte AWS endroit où vous stockez vos plans Account Factory (parfois appelé compte hub).

  • Accédez à la AWS Service Catalog console. Choisissez Liste de produits, puis choisissez Télécharger un nouveau produit.

  • Dans le volet Détails du produit, entrez les détails de votre produit Blueprint, tels qu'un nom et une description.

  • Sélectionnez Utiliser un fichier modèle, puis sélectionnez Choisir un fichier. Sélectionnez ou collez le modèle ou le fichier de configuration que vous avez développé ou téléchargé pour l'utiliser comme plan directeur.

  • Choisissez Créer un produit en bas de la page de la console.

Vous pouvez télécharger un AWS CloudFormation modèle depuis le référentiel d'architecture de AWS Service Catalog référence. Un exemple tiré de ce référentiel permet de configurer un plan de sauvegarde pour vos ressources.

Voici un exemple de modèle, pour une entreprise fictive appelée Best Pets. Cela aide à établir une connexion à leur base de données pour animaux de compagnie.

Resources: ConnectionStringGeneratorLambdaRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: "2012-10-17" Statement: - Effect: Allow Principal: Service: - lambda.amazonaws.com Action: - "sts:AssumeRole" ConnectionStringGeneratorLambda: Type: AWS::Lambda::Function Properties: FunctionName: !Join ['-', ['ConnectionStringGenerator', !Select [4, !Split ['-', !Select [2, !Split ['/', !Ref AWS::StackId]]]]]] Description: Retrieves the connection string for this account to access the Pet Database Role: !GetAtt ConnectionStringGeneratorLambdaRole.Arn Runtime: nodejs16.x Handler: index.handler Timeout: 5 Code: ZipFile: > const response = require("cfn-response"); exports.handler = function (event, context) { const awsAccountId = context.invokedFunctionArn.split(":")[4] const connectionString= "fake connection string that's specific to account " + awsAccountId; const responseData = { Value: connectionString, } response.send(event, context, response.SUCCESS, responseData); return connectionString; }; ConnectionString: Type: Custom::ConnectionStringGenerator Properties: ServiceToken: !GetAtt ConnectionStringGeneratorLambda.Arn PetDatabaseConnectionString: DependsOn: ConnectionString # For example purposes we're using SSM parameter store. # In your template, use secure alternatives to store # sensitive values such as connection strings. Type: AWS::SSM::Parameter Properties: Name: pet-database-connection-string Description: Connection information for the BestPets pet database Type: String Value: !GetAtt ConnectionString.Value

Étape 3. Passez en revue votre plan personnalisé

Vous pouvez consulter votre plan dans la AWS Service Catalog console. Pour plus d'informations, consultez la section Gestion des produits dans le Guide de l'administrateur du Service Catalog.

Étape 4 : Appelez votre plan pour créer un compte personnalisé

Lorsque vous suivez le flux de travail de création de compte dans la console AWS Control Tower, vous verrez une section facultative dans laquelle vous pouvez saisir des informations sur le plan que vous souhaitez utiliser pour personnaliser les comptes.

Note

Vous devez configurer votre compte de hub de personnalisation et ajouter au moins un plan (produit Service Catalog) avant de pouvoir saisir ces informations dans la console AWS Control Tower et commencer à configurer des comptes personnalisés.

Créez ou mettez à jour un compte personnalisé dans la console AWS Control Tower.
  1. Entrez l'identifiant du compte qui contient vos plans.

  2. À partir de ce compte, sélectionnez un produit Service Catalog existant (plan existant).

  3. Sélectionnez la version appropriée du plan (produit Service Catalog), si vous en avez plusieurs versions.

  4. (Facultatif) Vous pouvez ajouter ou modifier une politique de provisionnement du plan à ce stade du processus. La politique de provisionnement du plan est écrite au format JSON et attachée à un rôle IAM, afin de pouvoir provisionner les ressources spécifiées dans le modèle de plan. AWS Control Tower crée ce rôle dans le compte membre afin que Service Catalog puisse déployer des ressources à l'aide de AWS CloudFormation stack sets. Le rôle est nommé AWSControlTower-BlueprintExecution-bp-xxxx. La AdministratorAccess politique est appliquée ici par défaut.

  5. Choisissez la Région AWS ou les régions dans lesquelles vous souhaitez déployer des comptes en fonction de ce plan.

  6. Si votre plan contient des paramètres, vous pouvez saisir les valeurs des paramètres dans des champs supplémentaires du flux de travail AWS Control Tower. Les valeurs supplémentaires peuvent inclure : un nom de GitHub référentiel, une GitHub branche, un nom de cluster Amazon ECS et l' GitHub identité du propriétaire du référentiel.

  7. Vous pouvez personnaliser les comptes ultérieurement en suivant le processus de mise à jour du compte, si votre compte hub ou vos plans ne sont pas encore prêts.

Pour en savoir plus, consultez Créez un compte personnalisé à partir d'un plan.