View a markdown version of this page

Configuración de Enterprise Blueprint Factory - AWS Orientación prescriptiva

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:

  • 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 proporcionados. GitHub A continuación, se utiliza AWS CodeConnections para crear una conexión con 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.

  2. Navegue hasta el repositorio de repositorios de GitHub configuración.

  3. Elija Fork.

  4. En la página Crear una nueva bifurcación, en el cuadro Nombre del repositorio, escribaServiceCatalog-ConfigRepo.

  5. (Opcional) Introduzca una descripción.

  6. Seleccione Copiar solo la rama principal.

  7. Selecciona Crear bifurcación.

  8. Repite estos pasos para bifurcar el GitHub repositorio de Code Repo. Introduce el nombre ServiceCatalog-CodeRepo de este repositorio.

  9. Repita estos pasos para bifurcar el repositorio del GitHub repositorio de productos. 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>
  2. 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
  1. En la cuenta del desarrollador de Blueprint, cree la siguiente política de confianza y guárdela comosc-enduserrole-trust-policy.json:

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/ServiceCatalogEndUserRole" }, "Action": "sts:AssumeRole" } }
  2. 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.

  3. Cree la siguiente política de confianza y guárdela comosc-launchconstraintrole-trust-policy.json:

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "servicecatalog.amazonaws.com" }, "Action": "sts:AssumeRole" } }
  4. 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
  5. 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 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.

  6. Cree la siguiente política de confianza y guárdela comosc-codebuild-trust-policy.json:

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "codebuild.amazonaws.com" }, "Action": "sts:AssumeRole" } }
  7. 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 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_id Cadena Parámetro que almacena el ID de la nube privada virtual (VPC) de destino.
    /blueprints/resources/subnets StringList Parámetro que almacena las subredes IDs de destino.
    /blueprints/resources/securitygroups StringList Parámetro que almacena los grupos IDs de seguridad de destino.
    /blueprints/resources/artifacts-bucket-name Cadena Parámetro que almacena el nombre del bucket de Amazon S3 que se utiliza para CodePipeline los artefactos.
    /blueprints/resources/BlueprintRepo Cadena 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/CodeRepo Cadena 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-Product El valor predeterminado es <user>/aws-enterprise-blueprint-factory-code-repo.
    /blueprints/resources/ConfigRepo Cadena 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
  1. En el repositorio de código (ServiceCatalog-CodeRepo), abra el archivo ServiceCatalog-Pipeline.yml.

  2. 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 el Bootstrapping-Admin-Product có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 es main.

    • 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 es DEV.

    • 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

  3. Guarde y cierre el archivo ServiceCatalog-Pipeline.yml.

  4. 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
  5. En el repositorio de configuración (ServiceCatalog-ConfigRepo), abra el archivo bp_config.yml.

  6. 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 de esta guía.

  7. Guarde y cierre el archivo bp_config.yml.

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

  2. Cambie a un rol de IAM que tenga permisos administrativos.

  3. Abra la consola de CloudFormation.

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

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

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

  7. En Especificar plantilla, elija Cargar un archivo de plantilla.

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

  9. Seleccione Siguiente para continuar y validar la plantilla.

  10. En Nombre de pila, introduce un nombre para la pila.

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

  12. Elija Siguiente.

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

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

  15. Supervise el progreso de la implementación de la pila. Para obtener más información, consulte la Documentación de CloudFormation.

  16. Espere a que el estado cambie aCREATE_COMPLETE.

Para validar el despliegue
  1. Abra la consola de AWS Service Catalog.

  2. En el panel de navegación, elija Productos.

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

  4. Abra la consola de AWS CodePipeline.

  5. En Nombre, elija la canalización de configuración. De forma predeterminada, el nombre de la canalización esServiceCatalog-Pipeline.

  6. Seleccione Ver historial.

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

  8. Espere hasta que el estado de la canalización de configuración seaSucceeded.

  9. Abra la consola de Service Catalog.

  10. En el panel de navegación, elija Productos.

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

  12. Si desea eliminar los modelos de muestra que implementó al configurar Enterprise Blueprint Factory, siga las instrucciones que se indican en Eliminar un esquema.

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

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

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