Configurer un gestionnaire d’accès aux identités dans AWS GovCloud
Créez des AWS CloudFormation ressources IAM (Identity Access Manager) pour trois types de comptes AWS dans le compte de gestion à l’aide des modèles CloudFormation (CFT) pour intégrer ServiceNow la gestion des comptes cloud (CAM) à AWS GovCloud.
Avant de commencer
Vérifiez que le compte d’utilisateur cible dispose des autorisations IAM requises AWS . Pour plus d'informations, consultez À propos des Amazon Web Services autorisations d’API.
Rôle requis : administrateur AWS
Pourquoi et quand exécuter cette tâche
AWS Les comptes GovCloud sont toujours liés à des comptes commerciaux, ce qui signifie que les ressources IAM doivent être créées sur trois AWS types de comptes :
- Compte de gestion commerciale AWS : compte standard AWS lié à GovCloud.
- Compte de gestion racine AWS GovCloud : compte principal dans l’environnement GovCloud.
- Compte de gestion des organisations AWS GovCloud : compte de gestion des ressources de l’organisation dans l’environnement GovCloud.
Procédure
-
Copiez chaque code de modèle CloudFormation (CFT) dans différents fichiers avec une extension
.ymlet enregistrez les fichiers. - Connectez-vous à la console de gestion à l’aide AWS de vos informations d’identification d’utilisateur racine.
-
Suivez les étapes pour exécuter chaque script dans l’ordre.
-
Compte de gestion commerciale AWS Script CFT
- Connectez-vous à la console Commercial AWS .
- Accédez à la console CloudFormation en saisissant CloudFormation dans la barre de recherche et en la sélectionnant.
- Sur la console CloudFormation, sélectionnez Créer une pile > Choisir un modèle existant > Charger un fichier de modèle > Choisir un fichier pour choisir un fichier de modèle sur votre ordinateur local.
Une pile est un ensemble de AWS ressources que vous pouvez gérer comme une seule unité.
- Utilisez le script CFT commercial enregistré et définissez le paramètre
SNUserName. - Enregistrez les paramètres de sortie :
SNUserARNetSNUser.
AWSTemplateFormatVersion: '2010-09-09' Description: This script creates a ServiceNow user in the AWS Commercial Management Account for Cloud Account Management (CAM) integration. Metadata: AWS::CloudFormation::Interface: ParameterGroups: - Label: default: User Credentials Parameters: - SNUserName ParameterLabels: SNUserName: default: User Name in the AWS Commercial environment Parameters: SNUserName: Type: String Description: User name for ServiceNow Cloud Workspace application in AWS Commercial Environment MinLength: '6' MaxLength: '15' ConstraintDescription: The username must be between 6 and 15 characters Resources: # AWS Commercial Resources SnowCWMemberAccountAccessGroup: Type: 'AWS::IAM::Group' Properties: GroupName: SnowCWMemberAccountAccessGroup Description: IAM Group for ServiceNow Cloud Workspace users with permissions to manage AWS Organizations SnowCWAccountAccessPolicy: Type: 'AWS::IAM::Policy' Properties: PolicyName: SnowCWAccountAccessPolicy PolicyDocument: Version: '2012-10-17' Statement: # Create Account Workflow Permissions - Sid: ServiceNowCreateAccountAccess Effect: Allow Action: - 'budgets:CreateBudgetAction' - 'budgets:DescribeBudgetAction' - 'organizations:CreateGovCloudAccount' - 'organizations:DescribeCreateAccountStatus' - 'organizations:MoveAccount' - 'organizations:TagResource' - 'organizations:ListRoots' Resource: '*' # Account Management Workflow Permissions - Sid: ServiceNowAccountManagementAccess Effect: Allow Action: - 'budgets:ListTagsForResource' - 'budgets:ModifyBudget' - 'budgets:ViewBudget' - 'iam:GetAccountPasswordPolicy' - 'iam:GetAccountSummary' - 'iam:GetRole' - 'iam:ListAccountAliases' - 'organizations:AttachPolicy' - 'organizations:DescribePolicy' - 'organizations:DetachPolicy' - 'sts:AssumeRole' Resource: '*' # Discovery Workflow Permissions - Sid: ServiceNowDiscoveryAccess Effect: Allow Action: - 'organizations:DescribeAccount' - 'organizations:DescribeOrganization' - 'organizations:DescribeOrganizationalUnit' - 'organizations:ListAccounts' - 'organizations:ListAWSServiceAccessForOrganization' - 'organizations:ListOrganizationalUnitsForParent' - 'organizations:ListParents' - 'organizations:ListRoots' - 'organizations:ListTagsForResource' Resource: '*' Groups: - !Ref SnowCWMemberAccountAccessGroup Description: Policy that grants permissions required for ServiceNow CAM in the AWS Commercial environment CreateServicenowUser: Type: 'AWS::IAM::User' Properties: Path: / UserName: !Ref SNUserName Tags: - Key: Purpose Value: ServiceNowCAMIntegration Description: IAM user for ServiceNow CAM integration with AWS Commercial environment AddSnowUserToSnowCWMemberAccountAccessGroup: Type: 'AWS::IAM::UserToGroupAddition' Properties: GroupName: SnowCWMemberAccountAccessGroup Users: - !Ref SNUserName DependsOn: CreateServicenowUser Description: Adds the ServiceNow user to the access group Outputs: SNUserARN: Description: ARN of ServiceNow user in AWS Commercial environment Value: !GetAtt CreateServicenowUser.Arn SNUser: Description: Username of the created ServiceNow user in AWS Commercial environment Value: !Ref SNUserName -
Compte de gestion racine AWS GovCloud Script CFT
- Connectez-vous à la console GovCloud AWS .
- Accédez à la console CloudFormation en saisissant CloudFormation dans la barre de recherche et en la sélectionnant.
- Sur la console CloudFormation, sélectionnez Créer une pile > Choisir un modèle existant > Charger un fichier de modèle > Choisir un fichier pour choisir un fichier de modèle sur votre ordinateur local.
- Utilisez le script CFT racine GovCloud enregistré et définissez le paramètre
SNGovUserName. - Enregistrez les paramètres de sortie :
SNGovUserARNetSNGovUser.
Remarque :Pour plus de simplicité, ce modèle utilise un caractère générique (*) dans l’ARN de ressource pour SnowCWGovCloudUserPolicy, ce qui permet à l’utilisateur ServiceNow d’assumer le rôle dans n’importe quel compte GovCloud. Bien que cela fonctionne fonctionnellement, il accorde plus d’autorisations que nécessaire.
Pour les environnements de production :- Ajoutez un paramètre pour l’ID de compte d’organisation :
OrgAccountId : type : chaîne - Mettez à jour le champ Ressource :
Resource: !Sub 'arn:aws-us-gov:iam::${OrgAccountId}:role/ServiceNowGovCrossAccountRole' - Pour utiliser plusieurs comptes, consultez Paramètres CloudFormation et Utilisation de CommaDelimitedList
- Passez en revue les bonnes pratiques AWS IAM pour plus de conseils sur la sécurisation des politiques IAM
AWSTemplateFormatVersion: '2010-09-09' Description: This script creates a ServiceNow user in the AWS GovCloud Management Account for Cloud Account Management (CAM) integration. Metadata: AWS::CloudFormation::Interface: ParameterGroups: - Label: default: User Credentials Parameters: - SNGovUserName ParameterLabels: SNGovUserName: default: AWS User Name in the GovCloud environment Parameters: SNGovUserName: Type: String Description: User name for ServiceNow Cloud Workspace application in AWS GovCloud Environment MinLength: '6' MaxLength: '15' ConstraintDescription: The username must be between 6 and 15 characters Resources: # AWS GovCloud Resources SnowCWGovCloudAccessGroup: Type: 'AWS::IAM::Group' Properties: GroupName: SnowCWGovCloudAccessGroup Description: IAM Group for ServiceNow Cloud Workspace users in AWS GovCloud environment CreateGovCloudServicenowUser: Type: 'AWS::IAM::User' Properties: Path: / UserName: !Ref SNGovUserName Tags: - Key: Purpose Value: ServiceNowCAMIntegration Description: IAM user for ServiceNow CAM integration with AWS GovCloud environment SnowCWGovCloudUserPolicy: Type: 'AWS::IAM::Policy' Properties: PolicyName: SnowCWGovCloudUserPolicy PolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Action: 'sts:AssumeRole' Resource: 'arn:aws-us-gov:iam::*:role/ServiceNowGovCrossAccountRole' - Effect: Allow Action: 'sts:AssumeRole' Resource: 'arn:aws-us-gov:iam::*:role/OrganizationAccountAccessRole' Groups: - !Ref SnowCWGovCloudAccessGroup Description: Policy that grants basic permissions and ability to assume the cross-account role AddSnowUserToSnowCWGovCloudAccessGroup: Type: 'AWS::IAM::UserToGroupAddition' Properties: GroupName: SnowCWGovCloudAccessGroup Users: - !Ref SNGovUserName DependsOn: - CreateGovCloudServicenowUser - SnowCWGovCloudAccessGroup Description: Adds the ServiceNow GovCloud user to the access group Outputs: SNGovUserARN: Description: ARN of ServiceNow user in AWS GovCloud environment Value: !GetAtt CreateGovCloudServicenowUser.Arn SNGovUser: Description: Username of the created ServiceNow user in AWS GovCloud environment Value: !Ref SNGovUserName -
Compte de gestion des organisations AWS GovCloud Script CFT
- Connectez-vous à la console de l’organisation AWS GovCloud.
- Accédez à la console CloudFormation en entrant et en sélectionnant CloudFormation dans la barre de recherche.
- Sur la console CloudFormation, sélectionnez Créer une pile > Choisir un modèle existant > Charger un fichier de modèle > Choisir un fichier pour choisir un fichier de modèle sur votre ordinateur local.
- Utilisez le script CFT de l’organisation GovCloud enregistré et définissez le paramètre
SNGovUserARNsur la sortie enregistrée à partir du script CFT du compte de gestion racine AWS GovCloud . - Enregistrez le paramètre de sortie :
RoleARN.
AWSTemplateFormatVersion: '2010-09-09' Description: This template creates the ServiceNowGovCrossAccountRole in the AWS Organization Management Account for ServiceNow CAM integration. Metadata: AWS::CloudFormation::Interface: ParameterGroups: - Label: default: Role Configuration Parameters: - SNGovUserARN ParameterLabels: SNGovUserARN: default: ServiceNow GovCloud User ARN Parameters: SNGovUserARN: Type: String Description: ARN of the ServiceNow GovCloud user that will assume this role AllowedPattern: '^arn:aws(-[a-z0-9-]+)?:iam::[0-9]{12}:user/.*$' ConstraintDescription: Must be a valid AWS IAM user ARN Resources: ServiceNowGovCrossAccountRole: Type: 'AWS::IAM::Role' Properties: RoleName: ServiceNowGovCrossAccountRole Description: Role used by ServiceNow CAM for cross-account operations in AWS GovCloud AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: AWS: !Ref SNGovUserARN Action: 'sts:AssumeRole' Policies: - PolicyName: ServiceNowGovCloudPolicy PolicyDocument: Version: '2012-10-17' Statement: # Create Account Workflow Permissions - Sid: ServiceNowGovCreateAccountAccess Effect: Allow Action: - 'organizations:InviteAccountToOrganization' - 'organizations:ListRoots' - 'organizations:MoveAccount' - 'organizations:TagResource' Resource: '*' # Account Management Workflow Permissions - Sid: ServiceNowGovAccountManagementAccess Effect: Allow Action: - 'iam:GetAccountAuthorizationDetails' - 'iam:GetAccountPasswordPolicy' - 'iam:GetAccountSummary' - 'iam:GetRole' - 'iam:ListAccountAliases' - 'organizations:AttachPolicy' - 'organizations:DescribePolicy' - 'organizations:DetachPolicy' Resource: '*' # Discovery Workflow Permissions - Sid: ServiceNowGovDiscoveryAccess Effect: Allow Action: - 'ec2:DescribeRegions' - 'organizations:DescribeAccount' - 'organizations:DescribeOrganization' - 'organizations:DescribeOrganizationalUnit' - 'organizations:ListAccounts' - 'organizations:ListAWSServiceAccessForOrganization' - 'organizations:ListOrganizationalUnitsForParent' - 'organizations:ListParents' - 'organizations:ListRoots' - 'organizations:ListTagsForResource' Resource: '*' Outputs: RoleARN: Description: ARN of the ServiceNowGovCrossAccountRole Value: !GetAtt ServiceNowGovCrossAccountRole.Arn
-
Compte de gestion commerciale AWS Script CFT
- Sélectionnez Suivant pour continuer et valider le modèle.
- Sur la page Spécifier les détails de la pile , saisissez un nom pour le modèle dans le champ Nom de la pile .
Nom de pile A :
- Peut contenir uniquement des caractères alphanumériques et des traits d’union sensibles à la casse
- Doit commencer par un caractère alphabétique
- Ne peut pas dépasser 128 caractères
- Dans le champ Nom d’utilisateur , saisissez un nom d’utilisateur Gestion des comptes cloud de compte de service.
- Sélectionnez Suivant.
- Sur la page Configurer les options de pile , cochez la case Je reconnais qu’AWS CloudFormation peut créer des ressources IAM avec des noms personnalisés et sélectionnez Suivant.
-
Sur la page Examiner et créer , sélectionnez Soumettre pour lancer votre pile.
Le compte IAM est créé.
-
Pour ajouter des informations d’identification de sécurité pour les deux utilisateurs créés :
- Sélectionnez des ressources.
- Sélectionnez le lien du nom d’utilisateur.
- Dans la section Clés d’accès, sélectionnez Créer une clé d’accès.
-
Sur la page Bonnes pratiques et alternatives clés d’accès , choisissez l’option de service tiers .
Vous pouvez utiliser cette clé d’accès pour activer l’accès à une application ou à un service tiers qui surveille ou gère vos AWS ressources.
- Cochez la case Je comprends la recommandation ci-dessus et souhaitez créer une clé d’accès , puis sélectionnez Suivant.
- Sélectionnez Créer une clé d’accès.
-
Sur la page Examiner les clés d’accès , téléchargez le fichier de clé d’accès et sélectionnez Terminé.
Remarque :Partagez la clé d’accès et la clé secrète avec l’administrateur et ServiceNow AI Platform l’administrateurTerraform.