Gestione AWS Organizations las políticas como código mediante AWS CodePipeline Amazon Bedrock - Recomendaciones de AWS

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.

Gestione AWS Organizations las políticas como código mediante AWS CodePipeline Amazon Bedrock

Andre Cavalcante y Mariana Pessoa de Queiroz, Amazon Web Services

Resumen

Puede usar las políticas de autorización AWS Organizations para configurar y administrar de forma centralizada el acceso de los principales y los recursos de las cuentas de sus miembros. Las políticas de control de servicios (SCPs) definen los permisos máximos disponibles para los roles y usuarios AWS Identity and Access Management (IAM) de su organización. Las políticas de control de recursos (RCPs) definen los permisos máximos disponibles para los recursos de su organización.

Este patrón le ayuda a gestionar SCPs la infraestructura RCPs como código (IaC) que se despliega mediante un proceso de integración y despliegue continuos (CI/CD). Al utilizar Terraform AWS CloudFormation o Hashicorp para gestionar estas políticas, puede reducir la carga asociada a la creación y el mantenimiento de varias políticas de autorización.

Este patrón incluye las siguientes características:

  • Puede crear, eliminar y actualizar las políticas de autorización mediante archivos de manifiesto (scp-management.json y rcp-management.json).

  • Trabaja con barreras de protección en lugar de políticas. Las barreras de protección y sus objetivos se definen en los archivos de manifiesto.

  • La canalización, que utiliza AWS CodeBuild y AWS CodePipeline, fusiona y optimiza las barreras de protección de los archivos de manifiesto. Para cada declaración del archivo de manifiesto, la canalización combina las barreras de protección en una única SCP o RCP y, a continuación, las aplica a los objetivos definidos.

  • AWS Organizations aplica las políticas a sus objetivos. Un objetivo puede ser una Cuenta de AWS unidad organizativa (OU), un entorno (que es un grupo de cuentas o lo OUs que definas en el environments.json archivo) o un grupo de cuentas que comparten una AWS etiqueta.

  • Amazon Bedrock lee los registros de la canalización y resume todos los cambios de política.

  • La canalización requiere una aprobación manual. El aprobador puede revisar el resumen ejecutivo que Amazon Bedrock ha preparado, lo que lo ayuda a entender los cambios.

Requisitos previos y limitaciones

Requisitos previos 

  • Múltiples Cuentas de AWS que se administran como una organización en AWS Organizations. A fin de obtener más información, consulte Creación de una organización.

  • Las funciones SCP y RCP están habilitadas en. AWS Organizations Para obtener más información, consulte Enabling a policy type.

  • La versión 1.9.8 o posterior de Terraform instalada.

  • Si no va a implementar esta solución a través de una canalización de Terraform, el archivo de estado de Terraform debe almacenarse en un depósito de Amazon Simple Storage Service (Amazon S3) en el Cuenta de AWS lugar donde vaya a implementar la canalización de administración de políticas.

  • La versión 3.13.3 o posterior de Python instalada.

Limitaciones

  • No puede usar este patrón para administrar SCPs o RCPs crear fuera de esta CI/CD canalización. Sin embargo, puede recrear las políticas existentes a través de la canalización. Para obtener más información, consulte Migración de las políticas existentes a la canalización en la sección Información adicional de este patrón.

  • El número de cuentas y las políticas de cada cuenta están sujetos a las cuotas y los límites de servicio aplicables AWS Organizations. OUs

  • Este patrón no se puede utilizar para configurar políticas de administración AWS Organizations, como las políticas de respaldo, las políticas de etiquetas, las políticas de aplicaciones de chat o las políticas declarativas.

Arquitectura

En el siguiente diagrama se muestra el flujo de trabajo del proceso de administración de políticas y sus recursos asociados.

Publicar SCPs y llevar RCPs a cabo un proceso de gestión de políticas.

En el diagrama, se muestra el siguiente flujo de trabajo:

  1. Un usuario confirma los cambios en los archivos de manifiesto scp-management.json o rcp-management.json de la ramificación principal del repositorio remoto.

  2. El cambio en la main sucursal inicia la entrada de la canalización. AWS CodePipeline

  3. CodePipeline inicia el Validate-Plan CodeBuild proyecto. Este proyecto utiliza un script de Python en el repositorio remoto para validar las políticas y los archivos de manifiesto de políticas. Este CodeBuild proyecto hace lo siguiente:

    1. Comprueba que los archivos de manifiesto de SCP y RCP contienen una declaración única IDs ()Sid.

    2. Utiliza los scripts scp-policy-processor/main.py y rcp-policy-processor/main.py de Python para concatenar las barreras de protección de la carpeta de barreras de protección en una sola política RCP o SCP. Combina barreras de protección que tienen los mismos valores de Resource, Action y Condition.

    3. Se utiliza AWS Identity and Access Management Access Analyzer para validar la política final optimizada. Si hay algún resultado, la canalización se detiene.

    4. Crea archivos scps.json y rcps.json, que Terraform utiliza para crear recursos.

    5. Ejecuta el comando terraform plan, que crea un plan de ejecución de Terraform.

  4. (Opcional) El Validate-Plan CodeBuild proyecto usa el bedrock-prompt/prompt.py script para enviar un mensaje a Amazon Bedrock. La petición se define en el archivo bedrock-prompt/prompt.txt. Amazon Bedrock utiliza Anthropic Claude Sonnet 3.5 para generar un resumen de los cambios propuestos mediante el análisis de los registros de Terraform y Python.

  5. CodePipeline utiliza un tema del Amazon Simple Notification Service (Amazon SNS) para notificar a los aprobadores que los cambios deben revisarse. Si Amazon Bedrock generó un resumen de cambios, la notificación incluye este resumen.

  6. Un aprobador de políticas aprueba la acción en. CodePipeline Si Amazon Bedrock generó un resumen de cambios, el aprobador puede revisarlo CodePipeline antes de aprobarlo.

  7. CodePipeline inicia el proyecto. Apply CodeBuild Este proyecto usa Terraform para aplicar los cambios de RCP y SCP. AWS Organizations

La plantilla de IaC asociada a esta arquitectura también implementa los siguientes recursos que respaldan la canalización de administración de políticas:

  • Un depósito de Amazon S3 para almacenar los CodePipeline artefactos y los scripts, como scp-policy-processor/main.py bedrock-prompt/prompt.py

  • Una clave AWS Key Management Service (AWS KMS) que cifra los recursos creados por esta solución

Tools (Herramientas)

Servicios de AWS

  • Amazon Bedrock es un servicio de IA totalmente administrado que pone a disposición de los usuarios muchos modelos fundacionales de alto rendimiento a través de una API unificada.

  • AWS CodeBuild es un servicio de compilación completamente administrado que le permite compilar código fuente, poner en marcha pruebas unitarias y producir artefactos listos para implementar. 

  • AWS CodePipeline permite diseñar y configurar rápidamente las diferentes etapas de un proceso de lanzamiento de software y automatizar los pasos necesarios para lanzar los cambios en el software de manera continua.

  • AWS Organizationses un servicio de administración de cuentas que le ayuda a consolidar múltiples cuentas Cuentas de AWS en una organización que usted crea y administra de forma centralizada.

  • AWS SDK para Python (Boto3)es un kit de desarrollo de software que le ayuda a integrar su aplicación, biblioteca o script de Python con Servicios de AWS.

  • Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos basado en la nube que lo ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.

Otras herramientas

  • HashiCorp Terraform es una herramienta de IaC que le ayuda a usar código para aprovisionar y administrar la infraestructura y los recursos de la nube.

Repositorio de código

El código de este patrón está disponible en el organizations-policy-pipeline GitHub repositorio. Los archivos clave que se incluyen en la carpeta sample-repository son los siguientes:

  • En la carpeta environments, environments.json contiene una lista de entornos. Los entornos son un grupo de objetivos y pueden contener Cuenta de AWS IDs o unidades organizativas (OUs).

  • En la carpeta rcp-management:

    • La guardrails carpeta contiene las barandillas individuales para su RCPs

    • La policies carpeta contiene a la persona RCPs

    • El archivo de rcp-management.json manifiesto le ayuda a gestionar las barandillas RCP, completas RCPs, y sus objetivos asociados.

  • En la carpeta scp-management:

    • La guardrails carpeta contiene las barandillas individuales de su SCPs

    • La policies carpeta contiene a la persona SCPs

    • El archivo de scp-management.json manifiesto le ayuda a gestionar las barandillas SCP, completas SCPs, y sus objetivos asociados.

  • La utils carpeta contiene scripts que pueden ayudarte a migrar los actuales SCPs y a gestionarlos a RCPs lo largo del proceso. Para obtener más información, consulte la sección Información adicional de este patrón.

Prácticas recomendadas

  • Antes de configurar la canalización, te recomendamos que compruebes que no has alcanzado los límites de tus AWS Organizations cuotas.

  • Le recomendamos que utilice la cuenta AWS Organizations de administración solo para las tareas que se deben realizar en esa cuenta. Para obtener más información, consulte Best practices for the management account.

Epics

TareaDescripciónHabilidades requeridas

Creación de un repositorio.

Cree un repositorio desde el que su equipo de operaciones de seguridad administre las políticas. Utilice uno de los proveedores de repositorios de terceros AWS CodeConnections compatibles.

DevOps ingeniero

Delegar la administración de políticas.

Delegue la administración de AWS Organizations las políticas a la cuenta de miembro en la que vaya a implementar la canalización. Para obtener instrucciones, consulte Crear una política de delegación basada en recursos con. AWS Organizations Para ver un ejemplo de política, consulte Política de delegación basada en recursos de ejemplo en la sección Información adicional de este patrón.

Administrador de AWS

(Opcional) Habilitar el modelo fundacional.

Si desea generar resúmenes de los cambios en la política, habilite el acceso al modelo básico Anthropic Claude 3.5 Sonnet en Amazon Bedrock, Cuenta de AWS donde vaya a implementar la canalización. Para obtener instrucciones, consulte Add or remove access to Amazon Bedrock foundation models.

AWS general
TareaDescripciónHabilidades requeridas

Clonar el repositorio.

Introduzca el siguiente comando para clonar el repositorio desde: organizations-policy-pipeline GitHub

git clone https://github.com/aws-samples/organizations-policy-pipeline.git

DevOps ingeniero

Definir el método de implementación.

  1. En el repositorio clonado, abra el archivo variables.tf.

  2. Para project_name, ingrese el prefijo que desee aplicar a los nombres de los recursos implementados.

  3. Para provider_type, ingrese el proveedor del repositorio remoto. Los valores válidos se proporcionan en el archivo.

  4. Para full_repository_name, ingrese el nombre del repositorio remoto.

  5. Para branch_name, ingrese el nombre de la ramificación de Git que utilizará para implementar las políticas. Una inserción o fusión en esta ramificación, se inicia la canalización. Normalmente, esta es la rama principal.

  6. Para terraform_version, ingrese la versión de Terraform que está utilizando.

  7. Para enable_bedrock, ingrese true si desea que Amazon Bedrock resuma los cambios. Ingrese false si no desea generar un resumen de los cambios.

  8. Para tags, ingrese los pares de clave-valor que quiera asignar como etiquetas a los recursos implementados.

  9. Guarde y cierre el archivo variables.tf.

DevOps ingeniero

Implemente la canalización.

  1. Ingrese el siguiente comando para crear un plan y revisar los cambios:

    terraform plan
  2. Ingrese el siguiente comando para aplicar el plan y crear la infraestructura de la canalización:

    terraform apply
DevOps ingeniero, Terraform

Conectar el repositorio remoto.

En el paso anterior, Terraform creó una CodeConnections conexión con el repositorio de terceros. En la consola de herramientas para desarrolladores de AWS, cambie el estado de la conexión de PENDING a AVAILABLE. Para obtener instrucciones, consulte Update a pending connection.

AWS DevOps

Suscríbase al tema de Amazon SNS.

Terraform creó un tema de Amazon SNS. Suscriba un punto de conexión al tema y confirme la suscripción para que los aprobadores reciban notificaciones sobre las acciones de aprobación pendientes en la canalización. Para obtener instrucciones, consulte Creating a subscription to an Amazon SNS topic.

AWS general
TareaDescripciónHabilidades requeridas

Completar el repositorio remoto.

Desde el repositorio clonado, copie el contenido de la carpeta sample-repository al repositorio remoto. Esto incluye las carpetas environments, rcp-management, scp-management y utils.

DevOps ingeniero

Definir sus entornos.

  1. En la carpeta environments, abra el archivo environments.json. Este es el archivo donde defines el objetivo Cuentas de AWS y OUs para tu RCPs y SCPs.

  2. Elimine los entornos de ejemplo.

  3. Agregue sus entornos de destino en el siguiente formato:

    [ { "ID": "<environment-name>", "Target": [ "<ou-name>:<ou-id>", "<account-name>:<account-id>" ] } ]

    Donde:

    • <environment-name>es el nombre que se asigna al grupo de OUs y a las cuentas de AWS. Puede usar este nombre en el archivo de manifiesto para definir dónde quiere aplicar sus políticas.

    • <ou-name> es el nombre de la UO de destino.

    • <ou-id> es el ID de la UO de destino.

    • <account-name>es el nombre del objetivo Cuenta de AWS.

    • <account-id>es el identificador del objetivo Cuenta de AWS.

    Para ver ejemplos, consulte el repositorio de código fuente.

  4. Guarde y cierre el archivo environments.json.

DevOps ingeniero

Definir sus barreras de protección.

  1. Acceda a la carpeta rcp-management/guardrails de su repositorio remoto. Esta es la carpeta en la que se definen las barreras de protección del archivo de manifiesto de RCP. Cada barrera de protección debe estar en un archivo individual. Los archivos de barreras de protección pueden contener una o más declaraciones.

    nota

    Puedes usar la misma barrera de protección en varias sentencias de los archivos de manifiesto para SCPs y. RCPs Si modifica la barrera de protección, todas las políticas que la incluyan se verán afectadas.

  2. Elimine cualquier ejemplo de barrera de protección que se haya copiado del repositorio de código fuente.

  3. Cree un nuevo archivo .json y asígnele un nombre descriptivo.

  4. Abra el archivo .json que creó.

  5. Defina la barrera de protección en el siguiente formato:

    [ { "Sid": "<guardrail-name>", "Effect": "<effect-value>", "Action": [ "<action-name>" ], "Resource": "<resource-arn>", "Condition": { "<condition-operator>": { "<condition-key>": [ "<condition-value>" ] } } } ]

    Donde:

    • <guardrail-name> es un nombre único para la barrera de protección. Este nombre no se puede utilizar para ninguna otra barrera de protección.

    • <effect-value> debe ser Allow o Deny. Para obtener más información, consulte Effect.

    • <action-name> debe ser un nombre válido de una acción compatible con el servicio. Para obtener más información, consulte Action.

    • <resource-arn> es el nombre de recurso de Amazon (ARN) del recurso al que se aplica la barrera de protección. También puede utilizar caracteres comodín, como * o ?. Para obtener más información, consulte Resource.

    • <condition-operator> es un operador de condición válido. Para obtener más información, consulte Operadores de condición.

    • <condition-key> es una clave de contexto de condición global válida o una clave de contexto específica de un servicio. Para obtener más información, consulte Condition.

    • <condition-value> es el valor específico que se utiliza en una condición para evaluar si se aplica una barrera de protección. Para obtener más información, consulte Condition.

    Para ver ejemplos de barreras de protección de RCP, consulte el repositorio de código fuente.

  6. Guarde y cierre el archivo .json.

  7. Repita estos pasos para crear tantas barreras de protección de RCP como sea necesario.

  8. Repita estos pasos en la scp-management/guardrails carpeta para crear tantas barandillas como necesite para su. SCPs Para ver ejemplos de barreras de protección de SCP, consulte el repositorio de código fuente.

DevOps ingeniero

Definir sus políticas.

  1. Acceda a la carpeta rcp-management/policies de su repositorio remoto. Esta es la carpeta en la que se definen las políticas completas del archivo de manifiesto de RCP. Cada política debe ser un archivo individual.

    nota

    Si modifica una política de esta carpeta, los cambios de política afectarán a todas las cuentas o a las OUs que se aplique esta política, tal y como se define en el archivo de manifiesto.

  2. Elimine cualquier ejemplo de política que se haya copiado del repositorio de código fuente.

  3. Cree un nuevo archivo .json y asígnele un nombre descriptivo.

  4. Abra el archivo .json que creó.

  5. Defina la RCP. Por ejemplo RCPs, consulta el repositorio de código fuente o los ejemplos de políticas de control de recursos en la AWS Organizations documentación.

  6. Guarde y cierre el archivo .json.

  7. Repite estos pasos para crear tantos RCPs como necesites.

  8. Repite estos pasos en la scp-management/policies carpeta para crear tantos SCPs como necesites. Por ejemplo SCPs, consulte el repositorio de código fuente o consulte los ejemplos de políticas de control de servicios en la AWS Organizations documentación.

DevOps ingeniero
TareaDescripciónHabilidades requeridas

Configurar los archivos de manifiesto.

  1. En la carpeta rcp-management, abra el archivo rcp-management.json. Este es el archivo en el que se definen las barandillas de RCP que se RCPs aplican íntegramente a los entornos de destino. Para ver un ejemplo de este archivo, consulte el repositorio de código fuente.

  2. Elimine la declaración de ejemplo.

  3. Agregue una nueva declaración con el siguiente formato:

    [ { "SID": "<statement-name>", "Target": { "Type": "<target-type>", "ID": "<target-name>" }, "Guardrails": [ "<guardrail-name>" ], "Policy": "<policy-name>", "Comments": "<comment-text>" } ]

    Donde:

    • <statement-name> es un nombre único para la declaración.

    • <target-type> es el tipo de destino al que desea aplicar la política. Los valores válidos son Account, OU, Environment o Tag.

    • <target-name> es el identificador del destino al que desea aplicar la política. Introduzca una de las siguientes opciones:

      • En el caso de un Cuenta de AWS, introduzca el identificador como. <account-name>:<account-id>

      • Para una UO, ingrese el identificador como <OU-name>:<ou-id>.

      • Para un entorno, ingrese el nombre único que definió en el archivo environments.json.

      • Para una etiqueta, ingrese el par de clave-valor como <tag-key>:<tag-value>.

    • <guardrail-name> es el nombre único de la barrera de protección de RCP que definió en la carpeta rcp-management/guardrails. Puede agregar varias barreras de protección en este elemento. Puede dejar este campo vacío si no desea aplicar ninguna barrera de protección.

    • <policy-name> es el nombre único de la RCP que definió en la carpeta rcp-management/policies. Solo se puede agregar una política en este elemento. Puede dejar este campo vacío si no desea aplicar ninguna política.

    • <comment-text> es una descripción que puede ingresar con fines de documentación. Este campo no se utiliza durante el procesamiento de la canalización. Puede dejar este campo vacío si no desea agregar ningún comentario.

  4. Repita estos pasos para añadir tantas sentencias como sea necesario RCPs para configurarlas en su organización.

  5. Guarde y cierre el archivo rcp-management.json.

  6. En la carpeta scp-management, repita estos pasos en el archivo scp-management.json. Este es el archivo en el que se definen las barandillas SCP que se SCPs aplican íntegramente a los entornos de destino. Para ver un ejemplo de este archivo, consulte el repositorio de código fuente.

DevOps ingeniero

Iniciar la canalización.

Confirme y envíe los cambios a la ramificación del repositorio remoto que definió en el archivo variables.tf. Normalmente, esta es la ramificación main. La CI/CD tubería se inicia automáticamente. Si hay algún error en la canalización, consulte la sección Solución de problemas de este patrón.

DevOps ingeniero

Aprobar los cambios.

Cuando se complete el Validate-Plan CodeBuild proyecto, los aprobadores de políticas reciben una notificación a través del tema Amazon SNS que configuraste previamente. Haga lo siguiente:

  1. Abra el mensaje de notificación.

  2. Si está disponible, consulte el resumen de los cambios en la política.

  3. Siga las instrucciones de Aprobar o rechazar una acción de aprobación en. CodePipeline

AWS general, aprobador de políticas

Valide la implementación.

  1. Inicie sesión en la consola de AWS Organizations en la cuenta que es administradora delegada de AWS Organizations.

  2. En la página de políticas de control de servicios, confirme que las SCPs que ha creado aparecen en la lista.

  3. Elija una SCP que se administre a través de la canalización y confirme que se aplica a los objetivos previstos.

  4. En la página Políticas de control de recursos, confirme que las RCPs que ha creado aparecen en la lista.

  5. Elija una RCP que se administre a través de la canalización y confirme que se aplica a los objetivos previstos.

AWS general

Resolución de problemas

ProblemaSolución

Errores del archivo de manifiesto en la fase Validate-Plan de la canalización

En la salida de la canalización, aparece el mensaje “Errores de canalización en la fase de validación y planificación de los archivos de manifiesto” si hay algún error en los archivos scp-management.json o rcp-management.json. Los posibles errores incluyen un nombre de entorno incorrecto, campos o valores duplicados SIDs o no válidos. Haga lo siguiente:

  1. Siga las instrucciones de View build details in AWS CodeBuild.

  2. En el registro de compilación, busque el error de validación. El error proporciona más información sobre la causa del error de compilación.

  3. Actualice el archivo .json correspondiente.

  4. Confirme y envíe el archivo actualizado al repositorio remoto. La canalización se reinicia.

  5. Supervise el estado para confirmar que se ha resuelto el error de validación.

Resultados del analizador de acceso de IAM en la fase Validate-Plan de la canalización

En la salida de la canalización, aparece el mensaje “Resultados en el analizador de acceso de IAM durante la fase de validación y planificación” si hay algún error en las definiciones de las políticas o las barreras de protección. Este patrón utiliza el analizador de acceso de IAM para validar la política final. Haga lo siguiente:

  1. Siga las instrucciones de View build details in AWS CodeBuild.

  2. En el registro de compilación, busque el error de validación del analizador de acceso de IAM. El error proporciona más información sobre la causa del error de compilación. Para obtener más información sobre los tipos de resultados, consulte Referencia de la verificación de la validación de la política de IAM.

  3. Actualice el archivo .json correspondiente a la barrera de protección o política.

  4. Confirme y envíe el archivo actualizado al repositorio remoto. La canalización se reinicia.

  5. Supervise el estado para confirmar que se ha resuelto el error de validación.

Recursos relacionados

Información adicional

Política de delegación basada en recursos de ejemplo

El siguiente es un ejemplo de política de delegación basada en recursos para. AWS Organizations Permite que la cuenta de administración delegada administre SCPs y RCPs para la organización. En el siguiente ejemplo de política, sustituya <MEMBER_ACCOUNT_ID> por el ID de la cuenta en la que va a implementar la canalización de administración de políticas.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DelegationToAudit", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<MEMBER_ACCOUNT_ID>:root" }, "Action": [ "organizations:ListTargetsForPolicy", "organizations:CreatePolicy", "organizations:DeletePolicy", "organizations:AttachPolicy", "organizations:DetachPolicy", "organizations:DisablePolicyType", "organizations:EnablePolicyType", "organizations:UpdatePolicy", "organizations:DescribeEffectivePolicy", "organizations:DescribePolicy", "organizations:DescribeResourcePolicy" ], "Resource": "*" } ] }

Migración de las políticas existentes a la canalización

Si ya existe SCPs o RCPs si desea migrar y administrar a través de esta canalización, puede usar los scripts de Python en la sample-repository/utils carpeta del repositorio de código. Estos scripts incluyen:

  • check-if-scp-exists-in-env.py: este script comprueba si una política específica se aplica a algún objetivo de un entorno específico, que define en el archivo environments.json. Ingrese el siguiente comando para ejecutar este script:

    python3 check-if-scp-exists-in-env.py \ --policy-type <POLICY_TYPE> \ --policy-name <POLICY_NAME> \ --env-id <ENV_ID>

    Sustituya lo siguiente en este comando:

    • <POLICY_TYPE> es scp or rcp

    • <POLICY_NAME> es el nombre de la SCP o la RCP.

    • <ENV_ID> es el ID del entorno que definió en el archivo environments.json.

  • create-environments.py— Este script crea un archivo environments.json basado en el entorno actual SCPs y RCPs en su entorno. Excluye las políticas implementadas a través de. AWS Control Tower Ingrese el siguiente comando para ejecutar este script, donde <POLICY_TYPE> es scp o rcp:

    python create-environments.py --policy-type <POLICY_TYPE>
  • verify-policies-capacity.py— Este script comprueba cada entorno que defina para determinar cuánta capacidad queda para cada cuota relacionada con las AWS Organizations políticas. Defina los entornos para comprobarlos en el archivo environments.json. Ingrese el siguiente comando para ejecutar este script, donde <POLICY_TYPE> es scp o rcp:

    python verify-policies-capacity.py --policy-type <POLICY_TYPE>