Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Configuración de Enterprise Blueprint Factory
Esta sección le ayuda a configurar Enterprise Blueprint Factory en su entorno. AWS Incluye instrucciones detalladas para configurar los repositorios y los AWS recursos necesarios para Enterprise Blueprint Factory.
Requisitos previos
Los siguientes son los requisitos previos para configurar Enterprise Blueprint Factory en su entorno: AWS
-
Lo siguiente: Cuentas de AWS
-
Una cuenta que se utiliza para administrar Enterprise Blueprint Factory y lanzar productos
-
Una o más cuentas que consumen el producto lanzado
-
-
Todas las cuentas son:
-
Administradas como una organización en AWS Organizations
-
Ubicado en la misma unidad organizativa (OU)
-
La organización sigue el account-per-tenant modelo
-
-
AWS Command Line Interface (AWS CLI), instalado y configurado
-
Permisos para implementar una AWS CloudFormation pila que cree los siguientes AWS recursos:
-
Grupo de CloudWatch registros de Amazon Logs
-
AWS CodePipeline canalizaciones
-
AWS CodeBuild proyectos
-
Política y reglas de Amazon EventBridge Event Bus
-
AWS Identity and Access Management Función y política (IAM)
-
AWS Key Management Service (AWS KMS) política clave y clave
-
AWS Service Catalog carteras, productos y productos aprovisionados
-
Tema, política temática y suscripción del Amazon Simple Notification Service (Amazon SNS)
-
Buckets de Amazon Simple Storage Service (Amazon S3)
-
AWS Systems Manager Parámetros del almacén de parámetros
Para obtener más información sobre la configuración de estos permisos, consulte la CloudFormation documentación y la implementación de políticas para los permisos con privilegios mínimos para. AWS CloudFormation
-
-
¿Una cuenta GitHub
Prácticas recomendadas
Le recomendamos que siga estas prácticas recomendadas al configurar Enterprise Blueprint Factory en su AWS entorno:
-
Al configurar los permisos necesarios para implementar Enterprise Blueprint Factory, siga el principio de privilegios mínimos y conceda los permisos mínimos necesarios. Para obtener más información, consulte Otorgar privilegio mínimo y Prácticas recomendadas de seguridad en la documentación de IAM.
-
Al configurar el acceso a las carteras de Service Catalog, siga el principio de privilegios mínimos y conceda acceso únicamente a funciones, usuarios o administradores específicos. Siga las prácticas recomendadas de seguridad de Service Catalog.
Crear los repositorios
Esta sección le ayuda a configurar el repositorio de configuración y el repositorio de productos para Enterprise Blueprint Factory. Para configurar sus repositorios, agrupe los repositorios
Para bifurcar los repositorios GitHub
-
Inicia sesión en GitHub
. -
Navegue hasta el repositorio de repositorios de GitHub configuración
. -
Elija Fork.
-
En la página Crear una nueva bifurcación, en el cuadro Nombre del repositorio, escriba
ServiceCatalog-ConfigRepo. -
(Opcional) Introduzca una descripción.
-
Seleccione Copiar solo la rama principal.
-
Selecciona Crear bifurcación.
-
Repite estos pasos para bifurcar el GitHub repositorio de Code Repo
. Introduce el nombre ServiceCatalog-CodeRepode este repositorio. -
Repita estos pasos para bifurcar el repositorio del GitHub repositorio de productos
. Introduzca el nombre ServiceCatalog-BlueprintProductRepode este repositorio.
Para crear la CodeConnections conexión
-
En la AWS CLI, introduzca el siguiente comando para crear una CodeConnections conexión a GitHub:
aws codeconnections create-connection --provider-type GitHub --connection-name <MyConnection> -
Utilice la consola de herramientas para AWS desarrolladores para completar la conexión. Para obtener más información, consulte Actualización de una conexión pendiente.
Para clonar los repositorios bifurcados
-
Introduzca los siguientes comandos para clonar los GitHub repositorios en su estación de trabajo local:
git clone git@github.com:<user>/aws-enterprise-blueprint-factory-config-repo ServiceCatalog-ConfigRepo git clone git@github.com:<user>/aws-enterprise-blueprint-factory-blueprint-repo ServiceCatalog-BlueprintProductRepo git clone git@github.com:<user>/aws-enterprise-blueprint-factory-code-repo ServiceCatalog-CodeRepo
Configuración de Enterprise Blueprint Factory
Las instrucciones de esta sección describen cómo configurar Enterprise Blueprint Factory en su cuenta de destino. El repositorio de productos desde el que ha clonado GitHub contiene dos CloudFormation plantillas de muestra y. BP-S3 BP-SNS Siguiendo estas instrucciones, implementará estos dos modelos de ejemplo como productos en Service Catalog.
Para configurar las funciones
-
En la cuenta del desarrollador de Blueprint, cree la siguiente política de confianza y guárdela como
sc-enduserrole-trust-policy.json:{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/ServiceCatalogEndUserRole" }, "Action": "sts:AssumeRole" } } -
Introduzca el siguiente comando para crear el rol de
ServiceCatalogEndUserRoleIAM:aws iam create-role \ --role-name ServiceCatalogEndUserRole \ --assume-role-policy-document file://sc-enduserrole-trust-policy.json aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AWSServiceCatalogEndUserFullAccess \ -- role-name ServiceCatalogEndUserRolenota
Los desarrolladores utilizan la
ServiceCatalogEndUserRolefunción para aprovisionar el producto Service Catalog. Esta función no necesita permisos para crear los recursos definidos en el blueprint. Esto sigue las prácticas recomendadas en materia de permisos con privilegios mínimos y de segregación de funciones. -
Cree la siguiente política de confianza y guárdela como
sc-launchconstraintrole-trust-policy.json:{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "servicecatalog.amazonaws.com" }, "Action": "sts:AssumeRole" } } -
Introduzca el siguiente comando para crear el rol de
ServiceCataloglogLaunchConstraintRoleIAM:aws iam create-role \ --role-name ServiceCataloglogLaunchConstraintRole \ --assume-role-policy-document file://sc-launchconstraintrole-trust-policy.json aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonSNSFullAccess \ --role-name ServiceCataloglogLaunchConstraintRole aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AWSCloudFormationFullAccess \ --role-name ServiceCataloglogLaunchConstraintRole -
Añada la siguiente política a la función de
ServiceCataloglogLaunchConstraintRoleIAM. Incluya cualquier otro permiso que sea necesario para los recursos del producto, tal y como se describe en la documentación sobre cómo configurar un rol de lanzamiento en la documentación de Service Catalog:{ "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetObject" ], "Resource":"*", "Condition":{ "StringEquals":{ "s3:ExistingObjectTag/servicecatalog:provisioning":"true" } } ] }nota
Service Catalog utiliza esta función para implementar la CloudFormation pila como un producto en Service Catalog. La política de confianza de este rol garantiza que solo Service Catalog pueda asumirlo. Otros usuarios o servicios no pueden asumir esta función. Esto sigue la mejor práctica de segregación de funciones.
-
Cree la siguiente política de confianza y guárdela como
sc-codebuild-trust-policy.json:{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "codebuild.amazonaws.com" }, "Action": "sts:AssumeRole" } } -
Introduzca el siguiente comando para crear el rol de
codebuild-servicecatalog-admin-roleIAM:aws iam create-role \ --role-name codebuild-servicecatalog-admin-role \ --assume-role-policy-document file://sc-codebuild-trust-policy.json aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AWSCodeBuildAdminAccess \ --role-name codebuild-servicecatalog-admin-rolenota
Los CodeBuild trabajos de la canalización de configuración utilizan este rol.
Para configurar el bucket de Amazon S3
-
Para crear un depósito de Amazon Simple Storage Service (Amazon S3) que se utilice para almacenar CodePipeline los artefactos, siga las instrucciones de Creación de un depósito de la documentación de Amazon S3. Siga las prácticas recomendadas de seguridad de Amazon S3.
Para configurar los AWS Systems Manager parámetros
-
Siga las instrucciones de Creación de parámetros de almacén de parámetros en Systems Manager para crear los parámetros de Systems Manager de la siguiente tabla. Estos parámetros se utilizan en la CloudFormation plantilla que despliega la canalización de configuración.
Nombre del parámetro Tipo Descripción /blueprints/resources/vpc_idCadena Parámetro que almacena el ID de la nube privada virtual (VPC) de destino. /blueprints/resources/subnetsStringList Parámetro que almacena las subredes IDs de destino. /blueprints/resources/securitygroupsStringList Parámetro que almacena los grupos IDs de seguridad de destino. /blueprints/resources/artifacts-bucket-nameCadena Parámetro que almacena el nombre del bucket de Amazon S3 que se utiliza para CodePipeline los artefactos. /blueprints/resources/BlueprintRepoCadena Parámetro que almacena el GitHub repositorio donde se almacenan los planos de Enterprise Blueprint Factory. El valor predeterminado es <user>/aws-enterprise-blueprint-factory-blueprint-repo./blueprints/resources/CodeRepoCadena Parámetro que almacena el GitHub repositorio donde se almacenan el código del proceso de configuración de Enterprise Blueprint Factory y el código. Bootstrapping-Admin-ProductEl valor predeterminado es<user>/aws-enterprise-blueprint-factory-code-repo./blueprints/resources/ConfigRepoCadena Parámetro que almacena el GitHub repositorio donde se guardan los archivos de configuración de Enterprise Blueprint Factory. El valor predeterminado es <user>/aws-enterprise-blueprint-factory-config-repo.
Para actualizar las plantillas CloudFormation
-
En el repositorio de código (
ServiceCatalog-CodeRepo), abra el archivo ServiceCatalog-Pipeline.yml. -
Edite los valores predeterminados de los siguientes parámetros de este archivo:
-
ConfigRepositoryNamees el parámetro de Systems Manager que almacena el GitHub repositorio donde se almacenan los archivos de configuración de Enterprise Blueprint Factory. El valor predeterminado es/blueprints/resources/ConfigRepo. -
CodeRepositoryNamees el parámetro de Systems Manager que almacena el GitHub repositorio donde se almacenan el código de la canalización de configuración de Enterprise Blueprint Factory y elBootstrapping-Admin-Productcódigo. El valor predeterminado es/blueprints/resources/CodeRepo. -
BlueprintRepositoryNamees el parámetro de Systems Manager que almacena el GitHub repositorio donde se almacenan los planos de Enterprise Blueprint Factory. El valor predeterminado es/blueprints/resources/BlueprintRepo. -
BranchNamees la rama del repositorio de configuración donde se almacena el archivo de configuración. El valor predeterminado esmain. -
VPCIDes el parámetro de Systems Manager que almacena el ID de la VPC de destino. El valor predeterminado es/blueprints/resources/vpc_id. -
Subnetses el parámetro de Systems Manager que almacena las subredes IDs de destino. El valor predeterminado es/blueprints/resources/subnets. -
SecurityGroupIdses el parámetro de Systems Manager que almacena los grupos IDs de seguridad de destino. El valor predeterminado es/blueprints/resources/securitygroups. -
IamRoleNamees el nombre de la función de IAM que utilizan los CodeBuild trabajos. El valor predeterminado escodebuild-servicecatalog-admin-role. -
EnvironmentTypees el entorno en el que se va a implementar Enterprise Blueprint Factory. El valor predeterminado esDEV. -
ArtifactBucketes el parámetro de Systems Manager que almacena el depósito de Amazon S3 donde se CodePipeline almacenan los artefactos. El valor predeterminado es/blueprints/resources/artifacts-bucket-name. -
CodeConnectionArnes el nombre de recurso de Amazon (ARN) de la CodeConnections conexión a. GitHub
-
-
Guarde y cierre el archivo ServiceCatalog-Pipeline.yml.
-
Introduzca los siguientes comandos para combinar los cambios en el repositorio de código:
cd ServiceCatalog-CodeRepo git add ServiceCatalog-Pipeline.yml git commit -m "<description of change>" git push origin main -
En el repositorio de configuración (
ServiceCatalog-ConfigRepo), abra el archivo bp_config.yml. -
Actualice los valores de la sección de cartera según sea necesario para su organización. Por ejemplo, actualice los
share_to_ouatributosportfolio_access_rolesy. Para obtener más información, consulte el archivo de configuración de esta guía. -
Guarde y cierre el archivo bp_config.yml.
-
Introduzca los siguientes comandos para combinar los cambios en el repositorio de código:
cd ServiceCatalog-ConfigRepo git add bp_config.yml git commit -m "<description of change>" git push origin main
Para implementar la CloudFormation pila
-
Inicie sesión en la cuenta administrativa de Enterprise Blueprint Factory.
-
Cambie a un rol de IAM que tenga permisos administrativos.
-
Abra la consola de CloudFormation
. -
En la barra de navegación de la parte superior de la pantalla, selecciona el objetivo Región de AWS.
-
En la página Pilas, elija Crear pila en la parte superior derecha y, a continuación, elija Con recursos nuevos (estándar).
-
En Prepare template (Preparar plantilla), elija Template is ready (La plantilla está lista).
-
En Especificar plantilla, elija Cargar un archivo de plantilla.
-
Selecciona Elegir archivo, navega hasta la
ServiceCatalog-CodeRepocarpeta y, a continuación, selecciona ServiceCatalog-Pipeline.yml. -
Seleccione Siguiente para continuar y validar la plantilla.
-
En Nombre de pila, introduce un nombre para la pila.
-
En la sección Parámetros, no cambie los valores predeterminados.
-
Elija Siguiente.
-
En la página Configurar opciones de pila, no cambie los valores predeterminados y, a continuación, seleccione Siguiente.
-
En la página Revisar y crear, compruebe los detalles de la plantilla y la pila y, a continuación, seleccione Enviar.
-
Supervise el progreso de la implementación de la pila. Para obtener más información, consulte la Documentación de CloudFormation.
-
Espere a que el estado cambie a
CREATE_COMPLETE.
Para validar el despliegue
-
Abra la consola de AWS Service Catalog
. -
En el panel de navegación, elija Productos.
-
Confirme que ServiceCatalog-Pipeline esté disponible en la lista de productos.
-
Abra la consola de AWS CodePipeline
. -
En Nombre, elija la canalización de configuración. De forma predeterminada, el nombre de la canalización es
ServiceCatalog-Pipeline. -
Seleccione Ver historial.
-
Vea el estado de la canalización y la ejecución de la fase. Para obtener más información sobre el estado, consulte Ver el estado de la ejecución en la CodePipeline documentación.
-
Espere hasta que el estado de la canalización de configuración sea
Succeeded. -
Abra la consola de Service Catalog
. -
En el panel de navegación, elija Productos.
-
Confirme que los productos BP-S3 y BP-SNS estén disponibles. Esto indica que los procesos de lanzamiento del producto para los modelos de muestra se han completado correctamente.
Elimine Enterprise Blueprint Factory
Si no utiliza Enterprise Blueprint Factory, puede eliminarla para dejar de incurrir en los costes asociados a sus AWS recursos.
Eliminación de recursos de
-
Introduzca los siguientes comandos para eliminar las funciones de IAM que se desplegaron en la cuenta administrativa de Enterprise Blueprint Factory:
aws iam detach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AWSServiceCatalogEndUserFullAccess \ --role-name ServiceCatalogEndUserRole aws iam delete-role --role-name ServiceCatalogEndUserRole aws iam detach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonSNSFullAccess \ --role-name ServiceCataloglogLaunchConstraintRole aws iam delete-role --role-name ServiceCataloglogLaunchConstraintRole -
Elimine la CloudFormation pila de Enterprise Blueprint Factory. Para obtener instrucciones, consulte Eliminar una pila de la CloudFormation consola o Eliminar una pila de AWS CLI.
-
Elimine el depósito de Amazon S3 que se utiliza para almacenar los CodePipeline artefactos. Para obtener instrucciones, consulte Eliminar un bucket en la documentación de Amazon S3.
-
Elimine los siguientes parámetros de Systems Manager del almacén de parámetros:
-
/blueprints/resources/vpc_id -
/blueprints/resources/subnets -
/blueprints/resources/securitygroups -
/blueprints/resources/artifacts-bucket-name -
/blueprints/resources/BlueprintRepo -
/blueprints/resources/CodeRepo -
/blueprints/resources/ConfigRepo
Para obtener instrucciones, consulte Eliminar parámetros del almacén de parámetros en la documentación de Systems Manager.
-