Gerencie AWS Organizations políticas como código usando o AWS CodePipeline Amazon Bedrock - Recomendações da AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Gerencie AWS Organizations políticas como código usando o AWS CodePipeline Amazon Bedrock

André Cavalcante e Mariana Pessoa de Queiroz, Amazon Web Services

Resumo

Você pode usar políticas de autorização AWS Organizations para configurar e gerenciar centralmente o acesso de diretores e recursos em suas contas de membros. As políticas de controle de serviço (SCPs) definem o máximo de permissões disponíveis para as funções e usuários AWS Identity and Access Management (IAM) em sua organização. As políticas de controle de recursos (RCPs) definem o máximo de permissões disponíveis para recursos em sua organização.

Esse padrão ajuda você a gerenciar SCPs e criar uma infraestrutura RCPs como código (IaC) que você implanta por meio de um pipeline de integração contínua e implantação contínua (CI/CD). Ao usar o AWS CloudFormation Hashicorp Terraform para gerenciar essas políticas, você pode reduzir a carga associada à criação e manutenção de várias políticas de autorização.

Este padrão inclui os seguintes recursos:

  • Você cria, exclui e atualiza as políticas de autorização usando arquivos de manifesto (scp-management.json e rcp-management.json).

  • Você trabalha com barreiras de proteção, em vez de políticas. Você define suas barreiras de proteção e destinos nos arquivos de manifesto.

  • O pipeline, que usa AWS CodeBuild e AWS CodePipeline, mescla e otimiza as grades de proteção nos arquivos de manifesto. Para cada instrução no arquivo de manifesto, o pipeline combina as barreiras de proteção em uma única SCP ou RCP e as aplica aos destinos definidos.

  • AWS Organizations aplica as políticas às suas metas. Um destino pode ser uma Conta da AWS unidade organizacional (OU), um ambiente (que é um grupo de contas ou OUs que você define no environments.json arquivo) ou um grupo de contas que compartilham uma AWS tag.

  • O Amazon Bedrock lê os logs do pipeline e resume todas as mudanças na política.

  • O pipeline requer uma aprovação manual. O aprovador pode revisar o resumo executivo que o Amazon Bedrock preparou, o que o ajuda a entender as mudanças.

Pré-requisitos e limitações

Pré-requisitos

  • Vários Contas da AWS que são gerenciados como uma organização em AWS Organizations. Para obter mais informações, consulte Criar uma organização.

  • Os recursos SCP e RCP estão habilitados em. AWS Organizations Para obter mais informações, consulte Enabling a policy type.

  • Terraform versão 1.9.8 ou posterior instalado.

  • Se você não estiver implantando essa solução por meio de um pipeline do Terraform, o arquivo de estado do Terraform deverá ser armazenado em um bucket do Amazon Simple Storage Service (Amazon S3) no local em que você está implantando Conta da AWS o pipeline de gerenciamento de políticas.

  • Python versão 3.13.3 ou posterior instalado.

Limitações

  • Você não pode usar esse padrão para gerenciar SCPs ou RCPs que foram criados fora desse CI/CD pipeline. No entanto, você pode recriar as políticas existentes por meio do pipeline. Para obter mais informações, consulte Migrar políticas existentes para o pipeline na seção Informações adicionais deste padrão.

  • O número de contas e políticas em cada conta estão sujeitos às cotas e aos limites de serviço de. OUs AWS Organizations

  • Esse padrão não pode ser usado para configurar políticas de gerenciamento AWS Organizations, como políticas de backup, políticas de tags, políticas de aplicativos de bate-papo ou políticas declarativas.

Arquitetura

O diagrama a seguir mostra o fluxo de trabalho do pipeline de gerenciamento de políticas e seus recursos associados.

Liberando SCPs e RCPs por meio de um pipeline de gerenciamento de políticas.

O diagrama mostra o seguinte fluxo de trabalho:

  1. Um usuário confirma as alterações nos arquivos de manifesto scp-management.json ou rcp-management.json na ramificação principal do repositório remoto.

  2. A mudança na main ramificação inicia a entrada do pipeline. AWS CodePipeline

  3. CodePipeline inicia o Validate-Plan CodeBuild projeto. Este projeto usa um script Python no repositório remoto para validar as políticas e os arquivos de manifesto da política. Este CodeBuild projeto faz o seguinte:

    1. Verifica se os arquivos de manifesto SCP e RCP contêm uma instrução exclusiva IDs ()Sid.

    2. Usa os scripts Python scp-policy-processor/main.py e rcp-policy-processor/main.py para concatenar barreiras de proteção na pasta de barreiras de proteção em uma única política de RCP ou SCP. Ele combina as barreiras de proteção que têm o mesmo Resource, Action e Condition.

    3. Usa AWS Identity and Access Management Access Analyzer para validar a política final otimizada. Se houver alguma descoberta, o pipeline é interrompido.

    4. Cria arquivos scps.json e rcps.json, que o Terraform usa para criar recursos.

    5. Executa o comando terraform plan, que cria um plano de execução do Terraform.

  4. (Opcional) O Validate-Plan CodeBuild projeto usa o bedrock-prompt/prompt.py script para enviar uma solicitação ao Amazon Bedrock. Você define o prompt no arquivo bedrock-prompt/prompt.txt. O Amazon Bedrock usa o Anthropic Claude Sonnet 3.5 para gerar um resumo das mudanças propostas analisando os logs do Terraform e do Python.

  5. CodePipeline usa um tópico do Amazon Simple Notification Service (Amazon SNS) para notificar os aprovadores de que as alterações devem ser revisadas. Se o Amazon Bedrock gerou um resumo da alteração, a notificação incluirá esse resumo.

  6. Um aprovador da política aprova a ação em. CodePipeline Se o Amazon Bedrock gerou um resumo da alteração, o aprovador poderá revisar o resumo CodePipeline antes da aprovação.

  7. CodePipeline inicia o Apply CodeBuild projeto. Este projeto usa o Terraform para aplicar as alterações de RCP e SCP em. AWS Organizations

O modelo de IaC associado a essa arquitetura também implanta os seguintes recursos que dão suporte ao pipeline de gerenciamento de políticas:

  • Um bucket do Amazon S3 para armazenar CodePipeline artefatos e scripts, como e scp-policy-processor/main.py bedrock-prompt/prompt.py

  • Uma chave AWS Key Management Service (AWS KMS) que criptografa os recursos criados por essa solução

Ferramentas

Serviços da AWS

  • O Amazon Bedrock é um serviço de IA totalmente gerenciado que disponibiliza modelos de base de alta performance para uso por meio de uma API unificada.

  • O AWS CodeBuild é um serviço de compilação totalmente gerenciado que permite compilar o código-fonte, realizar testes de unidade e produzir artefatos preparados para a implantação. 

  • O AWS CodePipeline ajuda você a modelar e configurar rapidamente os diferentes estágios de uma versão de software, além de automatizar as etapas necessárias para a implantação contínua de alterações.

  • AWS Organizationsé um serviço de gerenciamento de contas que ajuda você a consolidar várias Contas da AWS em uma organização que você cria e gerencia centralmente.

  • AWS SDK para Python (Boto3)é um kit de desenvolvimento de software que ajuda você a integrar seu aplicativo, biblioteca ou script Python com o. Serviços da AWS

  • O Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.

Outras ferramentas

  • HashiCorp O Terraform é uma ferramenta de IaC que ajuda você a usar o código para provisionar e gerenciar a infraestrutura e os recursos da nuvem.

Repositório de código

O código desse padrão está disponível no organizations-policy-pipeline GitHub repositório. Seguem abaixo os arquivos de chaves que estão incluídos na pasta sample-repository:

  • Na pasta environments, environments.json contém uma lista de ambientes. Os ambientes são um grupo de alvos e podem conter Conta da AWS IDs nossas unidades organizacionais (OUs).

  • Na pasta rcp-management:

    • A guardrails pasta contém as grades de proteção individuais para seu RCPs

    • A policies pasta contém o indivíduo RCPs

    • O arquivo de rcp-management.json manifesto ajuda você a gerenciar grades de proteção completas RCPs do RCP e seus alvos associados.

  • Na pasta scp-management:

    • A guardrails pasta contém as grades de proteção individuais para seu SCPs

    • A policies pasta contém o indivíduo SCPs

    • O arquivo de scp-management.json manifesto ajuda você a gerenciar as grades de proteção completas SCPs do SCP e seus alvos associados.

  • A utils pasta contém scripts que podem ajudar você a migrar seus arquivos atuais SCPs RCPs para que você possa gerenciá-los por meio do pipeline. Para obter mais informações, consulte a seção Informações adicionais desse padrão.

Práticas recomendadas

  • Antes de configurar o pipeline, recomendamos que você verifique se não atingiu os limites de suas AWS Organizations cotas.

  • Recomendamos que você use a conta AWS Organizations de gerenciamento somente para tarefas que devem ser executadas nessa conta. Para obter mais informações, consulte Best practices for the management account.

Épicos

TarefaDescriptionHabilidades necessárias

Criar um repositório.

Crie um repositório por meio do qual sua equipe de operações de segurança gerenciará as políticas. Use um dos provedores de repositórios terceirizados que oferecem Conexões de código da AWS suporte.

DevOps engenheiro

Delegue a administração de políticas.

Delegue a administração das AWS Organizations políticas à conta do membro em que você está implantando o pipeline. Para obter instruções, consulte Criar uma política de delegação baseada em recursos com. AWS Organizations Para ver um exemplo de política, consulte Exemplo de política de delegação baseada em recursos na seção Informações adicionais deste padrão.

Administrador da AWS

(Opcional) Habilite o modelo de base.

Se você quiser gerar resumos das mudanças na política, habilite o acesso ao modelo de fundação Anthropic Claude 3.5 Sonnet no Amazon Bedrock, Conta da AWS onde você está implantando o pipeline. Para obter instruções, consulte Add or remove access to Amazon Bedrock foundation models.

AWS geral
TarefaDescriptionHabilidades necessárias

Clonar o repositório.

Digite o comando a seguir para clonar o organizations-policy-pipeline repositório: GitHub

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

DevOps engenheiro

Defina seu método de implantação.

  1. No repositório clonado, abra o arquivo variables.tf.

  2. Em project_name, insira o prefixo que você deseja aplicar aos nomes dos recursos implantados.

  3. Em provider_type, insira o provedor do repositório remoto. Os valores válidos são fornecidos no arquivo.

  4. Em full_repository_name, insira o nome do repositório remoto.

  5. Em branch_name, insira o nome da ramificação do Git que você usará para implantar políticas. Um envio por push ou mesclagem nessa ramificação inicia o pipeline. Normalmente, essa é a ramificação principal.

  6. Em terraform_version, insira a versão do Terraform que você está usando.

  7. Em enable_bedrock, insira true se você quiser que o Amazon Bedrock resuma as alterações. Insira false se você não quiser gerar um resumo das alterações.

  8. Em tags, insira os pares de chave-valor que você deseja atribuir como marcações aos recursos implantados.

  9. Salve e feche o arquivo variables.tf.

DevOps engenheiro

Implante o pipeline.

  1. Insira o seguinte comando para criar um plano e analisar as alterações:

    terraform plan
  2. Insira o seguinte comando para aplicar o plano e criar a infraestrutura do pipeline:

    terraform apply
DevOps engenheiro, Terraform

Conecte o repositório remoto.

Na etapa anterior, o Terraform criou uma CodeConnections conexão com o repositório de terceiros. No console do AWS Developer Tools, altere o status da conexão de PENDING para AVAILABLE. Para obter instruções, consulte Update a pending connection.

AWS DevOps

Assine o tópico do Amazon SNS.

O Terraform criou um tópico do Amazon SNS. Inscreva um endpoint no tópico e confirme a assinatura para que os aprovadores recebam notificações sobre ações de aprovação pendentes no pipeline. Para obter instruções, consulte Creating a subscription to an Amazon SNS topic.

AWS geral
TarefaDescriptionHabilidades necessárias

Preencha o repositório remoto.

Do repositório clonado, copie o conteúdo da pasta sample-repository para o seu repositório remoto. Isso inclui as pastas environments, rcp-management, scp-management and utils.

DevOps engenheiro

Defina seus ambientes.

  1. Na pasta environments, abra o arquivo environments.json. Este é o arquivo em que você define o alvo Contas da AWS e OUs para o seu RCPs SCPs e.

  2. Exclua os ambientes de exemplo.

  3. Adicione seus ambientes de destino no seguinte formato:

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

    Em que:

    • <environment-name>é o nome que você atribui ao grupo OUs e às contas da AWS. Você pode usar esse nome no arquivo de manifesto para definir onde deseja aplicar suas políticas.

    • <ou-name> é o nome da UO de destino.

    • <ou-id> é o ID da UO de destino.

    • <account-name>é o nome do alvo Conta da AWS.

    • <account-id>é o ID do alvo Conta da AWS.

    Para ver exemplos, consulte o repositório de código-fonte.

  4. Salve e feche o arquivo environments.json.

DevOps engenheiro

Defina suas barreiras de proteção.

  1. Navegue até a pasta rcp-management/guardrails no seu repositório remoto. Essa é a pasta em que você define as barreiras de proteção do seu arquivo de manifesto de RCP. Cada barreira de proteção deve estar em um arquivo individual. Os arquivos de barreira de proteção contêm uma ou mais instruções.

    nota

    Você pode usar a mesma grade de proteção em várias instruções nos arquivos de manifesto de e. SCPs RCPs Se você modificar a barreira de proteção, todas as políticas que incluam essa barreira de proteção serão afetadas.

  2. Exclua qualquer exemplo de proteções que tenha sido copiado do repositório do código-fonte.

  3. Crie um novo arquivo .json e dê a ele um nome descritivo.

  4. Abra o arquivo .json que você criou.

  5. Defina a barreira de proteção no seguinte formato:

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

    Em que:

    • <guardrail-name> é um nome exclusivo para a barreira de proteção. Esse nome não pode ser usado para nenhuma outra barreira de proteção.

    • <effect-value> precisa ser Allow ou Deny. Para obter mais informações, consulte Effect.

    • <action-name> deve ser um nome válido de uma ação aceita pelo serviço. Para obter mais informações, consulte Action.

    • <resource-arn> é o nome do recurso da Amazon (ARN) do recurso ao qual a barreira de proteção se aplica. Você também pode usar caracteres curinga, como * ou ?. Para mais informações, consulte Resource.

    • <condition-operator> é um operador de condição válido. Para obter mais informações, consulte operadores de condição.

    • <condition-key> é uma chave de contexto de condição global válida ou uma chave de contexto específica do serviço. Para obter mais informações, consulte Condition.

    • <condition-value> é o valor específico usado em uma condição para avaliar se uma barreira de proteção se aplica. Para obter mais informações, consulte Condition.

    Por ver exemplos de barreiras de proteção de RCP, consulte o repositório do código-fonte.

  6. Salve e feche o arquivo .json.

  7. Repita essas etapas para criar quantas barreiras de proteção do RCP forem necessárias.

  8. Repita essas etapas na scp-management/guardrails pasta para criar quantas grades de proteção forem necessárias para o seu. SCPs Por ver exemplos de barreiras de proteção de SCP, consulte o repositório do código-fonte.

DevOps engenheiro

Defina suas políticas.

  1. Navegue até a pasta rcp-management/policies no seu repositório remoto. Essa é a pasta na qual você define políticas completas para seu arquivo de manifesto de RCP. Cada política deve ser um arquivo individual.

    nota

    Se você modificar uma política nessa pasta, as alterações na política afetarão todas as contas às quais OUs essa política é aplicada, conforme definido no arquivo de manifesto.

  2. Exclua qualquer exemplo de política que tenha sido copiada do repositório de código-fonte.

  3. Crie um novo arquivo .json e dê a ele um nome descritivo.

  4. Abra o arquivo .json que você criou.

  5. Defina a RCP. Por exemplo RCPs, consulte o repositório de código-fonte ou veja exemplos de políticas de controle de recursos na AWS Organizations documentação.

  6. Salve e feche o arquivo .json.

  7. Repita essas etapas para criar RCPs quantas forem necessárias.

  8. Repita essas etapas na scp-management/policies pasta para criar SCPs quantas forem necessárias. Por exemplo SCPs, consulte o repositório de código-fonte ou veja exemplos de políticas de controle de serviços na AWS Organizations documentação.

DevOps engenheiro
TarefaDescriptionHabilidades necessárias

Configure os arquivos de manifesto.

  1. Na pasta rcp-management, abra o arquivo rcp-management.json. Esse é o arquivo em que você define quais grades de proteção do RCP RCPs se aplicam totalmente aos seus ambientes de destino. Para ver um exemplo desse arquivo, consulte o repositório do código-fonte.

  2. Exclua a declaração de exemplo.

  3. Adicione uma nova instrução no seguinte formato:

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

    Em que:

    • <statement-name> é um nome exclusivo para a declaração.

    • <target-type> é o tipo de destino ao qual você deseja aplicar a política. Os valores válidos são Account, OU, Environment ou Tag.

    • <target-name> é o identificador do destino em que você deseja aplicar a política. Insira um dos seguintes:

      • Para um Conta da AWS, insira o identificador como<account-name>:<account-id>.

      • Para uma UO, insira o identificador como <OU-name>:<ou-id>.

      • Para um ambiente, insira o nome exclusivo que você definiu no arquivo environments.json.

      • Para a marcação, insira o par de chave-valor como <tag-key>:<tag-value>.

    • <guardrail-name> é o nome exclusivo da barreira de proteção de RCP que você definiu na pasta rcp-management/guardrails. Você pode adicionar várias barreiras de proteção neste elemento. É possível deixar esse campo vazio se não quiser aplicar uma barreira de proteção.

    • <policy-name> é o nome exclusivo da RCP que você definiu na pasta rcp-management/policies. Você só pode adicionar uma política neste elemento. É possível deixar esse campo vazio se não quiser aplicar uma política.

    • <comment-text> é uma descrição que você pode inserir para fins de documentação. Esse campo não é usado durante o processamento do pipeline. É possível deixar esse campo vazio se não quiser adicionar um comentário.

  4. Repita essas etapas para adicionar quantas declarações forem necessárias RCPs para configurar sua organização.

  5. Salve e feche o arquivo rcp-management.json.

  6. Na pasta scp-management, repita essas etapas no arquivo scp-management.json. Esse é o arquivo em que você define quais grades de proteção do SCP SCPs se aplicam totalmente aos seus ambientes de destino. Para ver um exemplo desse arquivo, consulte o repositório do código-fonte.

DevOps engenheiro

Iniciar o pipeline.

Confirme e envie as alterações para a ramificação do repositório remoto que você definiu no arquivo variables.tf. Normalmente, essa é a ramificação main. O CI/CD pipeline é iniciado automaticamente. Se houver algum erro de pipeline, consulte a seção Solução de problemas deste padrão.

DevOps engenheiro

Aprove as mudanças.

Quando o Validate-Plan CodeBuild projeto estiver concluído, os aprovadores da política receberão uma notificação por meio do tópico do Amazon SNS que você configurou anteriormente. Faça o seguinte:

  1. Abra a mensagem de notificação.

  2. Se disponível, revise o resumo das mudanças na política.

  3. Siga as instruções em Aprovar ou rejeitar uma ação de aprovação em CodePipeline.

AWS geral, aprovador de políticas

Valide a implantação.

  1. Faça login no console do AWS Organizations na conta do administrador delegado do AWS Organizations.

  2. Na página Políticas de controle de serviços, confirme se as SCPs que você criou estão listadas.

  3. Escolha uma SCP que seja gerenciada por meio do pipeline e confirme se ela se aplica aos destinos pretendidos.

  4. Na página Políticas de controle de recursos, confirme se as RCPs que você criou estão listadas.

  5. Escolha uma RCP que seja gerenciada por meio do pipeline e confirme se ela se aplica aos destinos pretendidos.

AWS geral

Solução de problemas

ProblemaSolução

Erros do arquivo de manifesto na fase Validate-Plan do pipeline

Uma mensagem “Erros de pipeline na fase de validação e planejamento para arquivos de manifesto” aparece na saída do pipeline se houver algum erro nos arquivos scp-management.json ou rcp-management.json. Os possíveis erros incluem um nome de ambiente incorreto, campos ou SIDs valores duplicados ou inválidos. Faça o seguinte:

  1. Siga as instruções em Exibir detalhes da compilação em AWS CodeBuild.

  2. No log de compilação, encontre o erro de validação. O erro fornece mais informações sobre o que causou a falha da compilação.

  3. Atualize o arquivo .json correspondente.

  4. Confirme e envie o arquivo atualizado para o repositório remoto. O pipeline é reiniciado.

  5. Monitore o status para confirmar se o erro de validação foi resolvido.

Descobertas do IAM Access Analyzer na fase Validate-Plan do pipeline

Uma mensagem “Descobertas no IAM Access Analyzer durante a fase de validação e planejamento” aparece na saída do pipeline se houver algum erro na barreira de proteção ou nas definições da política. Este padrão usa o IAM Access Analyzer para validar a política final. Faça o seguinte:

  1. Siga as instruções em Exibir detalhes da compilação em AWS CodeBuild.

  2. No log de compilação, encontre o erro de validação do IAM Access Analyzer. O erro fornece mais informações sobre o que causou a falha da compilação. Para obter mais informações sobre os tipos de descoberta, consulte a referência de verificação de validação de políticas do IAM.

  3. Atualize o arquivo .json correspondente para a barreira de proteção ou política.

  4. Confirme e envie o arquivo atualizado para o repositório remoto. O pipeline é reiniciado.

  5. Monitore o status para confirmar se o erro de validação foi resolvido.

Recursos relacionados

Mais informações

Exemplo de política de delegação baseada em recursos

Veja a seguir um exemplo de política de delegação baseada em recursos para. AWS Organizations Ele permite que a conta de administrador delegada SCPs gerencie e RCPs para a organização. No exemplo de política a seguir, substitua <MEMBER_ACCOUNT_ID> pelo ID da conta em que você está implantando o pipeline de gerenciamento 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": "*" } ] }

Migrar políticas existentes para o pipeline

Se você já tiver SCPs ou RCPs quiser migrar e gerenciar por meio desse pipeline, poderá usar os scripts do Python na pasta sample-repository/utils do repositório de código. Esses scripts incluem:

  • check-if-scp-exists-in-env.py: esse script verifica se uma política especificada se aplica a algum destino em um ambiente específico, que você define no arquivo environments.json. Insira o seguinte comando para executar esse script:

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

    Substitua os seguintes valores nesse comando:

    • <POLICY_TYPE> é scp ou rcp

    • <POLICY_NAME> é o nome da SCP ou RCP

    • <ENV_ID> é o ID do ambiente que você definiu no arquivo environments.json

  • create-environments.py— Esse script cria um arquivo environments.json com base no atual SCPs e RCPs no seu ambiente. Isso exclui as políticas implantadas por meio de. AWS Control Tower Insira o seguinte comando para executar esse script, onde <POLICY_TYPE> é scp ou rcp:

    python create-environments.py --policy-type <POLICY_TYPE>
  • verify-policies-capacity.py— Esse script verifica cada ambiente que você define para determinar quanta capacidade resta para cada cota AWS Organizations relacionada à política. Você define os ambientes a serem verificados no arquivo environments.json. Insira o seguinte comando para executar esse script, onde <POLICY_TYPE> é scp ou rcp:

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