

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
<a name="setup"></a>

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
<a name="setup-prereqs"></a>

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](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)
  + Ubicado en la misma [unidad organizativa (OU)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#organizationalunit)
  + La organización sigue el [account-per-tenant modelo](https://aws.amazon.com/blogs/mt/managing-the-account-lifecycle-in-account-per-tenant-saas-environments-on-aws/)
+ AWS Command Line Interface (AWS CLI), [instalado](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) y [configurado](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ 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](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html) y la [implementación de políticas para los permisos con privilegios mínimos](https://docs.aws.amazon.com/prescriptive-guidance/latest/least-privilege-cloudformation/introduction.html) para. AWS CloudFormation
+ ¿Una cuenta GitHub 

## Prácticas recomendadas
<a name="setup-best-practices"></a>

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) y [Prácticas recomendadas de seguridad](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAMBestPracticesAndUseCases.html) 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](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/security-best-practices.html) de Service Catalog.

## Crear los repositorios
<a name="setup-create-repos"></a>

Esta sección le ayuda a configurar el repositorio de [configuración y el repositorio](architecture-components.md#architecture-config-repo) de [productos para Enterprise Blueprint Factory](architecture-components.md#architecture-product-repo). Para configurar sus repositorios, agrupe los [repositorios](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo) proporcionados. GitHub A continuación, se utiliza AWS CodeConnections para crear una [conexión con](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create-github.html) el repositorio GitHub . A continuación, clonas los GitHub repositorios en tu máquina local.

**Para bifurcar los repositorios GitHub**

1. Inicia sesión en [GitHub](https://github.com/login).

1. Navegue hasta el [repositorio de repositorios de GitHub configuración](https://github.com/aws-samples/aws-enterprise-blueprint-factory-config-repo).

1. Elija **Fork**.

1. En la página **Crear una nueva bifurcación**, en el cuadro **Nombre del repositorio**, escriba`ServiceCatalog-ConfigRepo`.

1. (Opcional) Introduzca una descripción.

1. Seleccione **Copiar solo la rama principal**.

1. Selecciona **Crear bifurcación**.

1. Repite estos pasos para bifurcar el GitHub repositorio [de Code Repo](https://github.com/aws-samples/aws-enterprise-blueprint-factory-code-repo). Introduce el nombre `ServiceCatalog-CodeRepo` de este repositorio.

1. Repita estos pasos para bifurcar el repositorio [del GitHub repositorio de productos](https://github.com/aws-samples/aws-enterprise-blueprint-factory-blueprint-repo). Introduzca el nombre `ServiceCatalog-BlueprintProductRepo` de este repositorio.

**Para crear la CodeConnections conexión**

1. 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>
   ```

1. 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](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html).

**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
<a name="setup-factory"></a>

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**

1. 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"
     }
   }
   ```

1. Introduzca el siguiente comando para crear el rol de `ServiceCatalogEndUserRole` IAM:

   ```
   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 ServiceCatalogEndUserRole
   ```
**nota**  
Los desarrolladores utilizan la `ServiceCatalogEndUserRole` funció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.

1. 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"
     }
   }
   ```

1. Introduzca el siguiente comando para crear el rol de `ServiceCataloglogLaunchConstraintRole` IAM:

   ```
   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
   ```

1. Añada la siguiente política a la función de `ServiceCataloglogLaunchConstraintRole` IAM. 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](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/constraints-launch.html#constraints-launch-role) 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.

1. 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"
     }
   }
   ```

1. Introduzca el siguiente comando para crear el rol de `codebuild-servicecatalog-admin-role` IAM:

   ```
   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-role
   ```
**nota**  
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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) depósito de la documentación de Amazon S3. Siga las [prácticas recomendadas de seguridad de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-best-practices.html).

**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](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-su-create.html) 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.  
****    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/enterprise-blueprint-factory/setup.html)

**Para actualizar las plantillas CloudFormation**

1. En el repositorio de código (`ServiceCatalog-CodeRepo`), abra el archivo **ServiceCatalog-Pipeline.yml**.

1. Edite los valores predeterminados de los siguientes parámetros de este archivo:
   + `ConfigRepositoryName`es 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`.
   + `CodeRepositoryName`es 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 el `Bootstrapping-Admin-Product` código. El valor predeterminado es `/blueprints/resources/CodeRepo`.
   + `BlueprintRepositoryName`es 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`.
   + `BranchName`es la rama del repositorio de configuración donde se almacena el archivo de configuración. El valor predeterminado es `main`.
   + `VPCID`es el parámetro de Systems Manager que almacena el ID de la VPC de destino. El valor predeterminado es `/blueprints/resources/vpc_id`.
   + `Subnets`es el parámetro de Systems Manager que almacena las subredes IDs de destino. El valor predeterminado es `/blueprints/resources/subnets`.
   + `SecurityGroupIds`es el parámetro de Systems Manager que almacena los grupos IDs de seguridad de destino. El valor predeterminado es `/blueprints/resources/securitygroups`.
   + `IamRoleName`es el nombre de la función de IAM que utilizan los CodeBuild trabajos. El valor predeterminado es`codebuild-servicecatalog-admin-role`.
   + `EnvironmentType`es el entorno en el que se va a implementar Enterprise Blueprint Factory. El valor predeterminado es `DEV`.
   + `ArtifactBucket`es 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`.
   + `CodeConnectionArn`es el nombre de recurso de Amazon (ARN) de la CodeConnections conexión a. GitHub

1. Guarde y cierre el archivo **ServiceCatalog-Pipeline.yml**.

1. 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
   ```

1. En el repositorio de configuración (`ServiceCatalog-ConfigRepo`), abra el archivo **bp\_config.yml**.

1. Actualice los valores de la sección de cartera según sea necesario para su organización. Por ejemplo, actualice los `share_to_ou` atributos `portfolio_access_roles` y. Para obtener más información, consulte el [archivo de configuración](architecture-components.md#architecture-config-file) de esta guía.

1. Guarde y cierre el archivo **bp\_config.yml**.

1. 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**

1. Inicie sesión en la cuenta administrativa de Enterprise Blueprint Factory.

1. Cambie a un rol de IAM que tenga permisos [administrativos](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AdministratorAccess.html).

1. Abra la [consola de CloudFormation](https://console.aws.amazon.com/cloudformation/).

1. En la barra de navegación de la parte superior de la pantalla, selecciona el objetivo Región de AWS.

1. En la página **Pilas**, elija **Crear pila** en la parte superior derecha y, a continuación, elija **Con recursos nuevos (estándar)**.

1. En **Prepare template** (Preparar plantilla), elija **Template is ready** (La plantilla está lista).

1. En **Especificar plantilla**, elija **Cargar un archivo de plantilla**.

1. Selecciona **Elegir archivo**, navega hasta la `ServiceCatalog-CodeRepo` carpeta y, a continuación, selecciona **ServiceCatalog-Pipeline.yml**.

1. Seleccione **Siguiente** para continuar y validar la plantilla.

1. En Nombre de **pila, introduce un nombre** para la pila.

1. En la sección **Parámetros**, no cambie los valores predeterminados.

1. Elija **Siguiente**.

1. En la página **Configurar opciones de pila**, no cambie los valores predeterminados y, a continuación, seleccione **Siguiente**.

1. En la página **Revisar y crear**, compruebe los detalles de la plantilla y la pila y, a continuación, seleccione **Enviar**.

1. Supervise el progreso de la implementación de la pila. Para obtener más información, consulte la [Documentación de CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/monitor-stack-progress.html).

1. Espere a que el estado cambie a`CREATE_COMPLETE`.

**Para validar el despliegue**

1. Abra la [consola de AWS Service Catalog](https://console.aws.amazon.com/servicecatalog/).

1. En el panel de navegación, elija **Productos**.

1. Confirme que **ServiceCatalog-Pipeline** esté disponible en la lista de productos.

1. Abra la [consola de AWS CodePipeline](https://console.aws.amazon.com/codesuite/codepipeline/home).

1. En **Nombre**, elija la canalización de configuración. De forma predeterminada, el nombre de la canalización es`ServiceCatalog-Pipeline`.

1. Seleccione **Ver historial**.

1. 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](https://docs.aws.amazon.com/codepipeline/latest/userguide/executions-view.html#pipelines-executions-status-console) en la CodePipeline documentación.

1. Espere hasta que el estado de la canalización de configuración sea`Succeeded`.

1. Abra la [consola de Service Catalog](https://console.aws.amazon.com/servicecatalog/).

1. En el panel de navegación, elija **Productos**.

1. 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.

1. [Si desea eliminar los modelos de muestra que implementó al configurar Enterprise Blueprint Factory, siga las instrucciones que se indican en Eliminar un esquema.](using-factory.md#using-factory-delete)

## Elimine Enterprise Blueprint Factory
<a name="setup-delete-factory"></a>

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**

1. 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
   ```

1. Elimine la CloudFormation pila de Enterprise Blueprint Factory. Para obtener instrucciones, consulte [Eliminar una pila de la CloudFormation consola](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) o [Eliminar una pila de AWS CLI](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/service_code_examples.html#delete-stack-sdk).

1. Elimine el depósito de Amazon S3 que se utiliza para almacenar los CodePipeline artefactos. Para obtener instrucciones, consulte [Eliminar un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html) en la documentación de Amazon S3.

1. 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](https://docs.aws.amazon.com/systems-manager/latest/userguide/deleting-parameters.html) en la documentación de Systems Manager.