Я хочу применить определенные SCP (политики управления службами) ко всем AWS учетным записям в организации, кроме той, которая указана владельцами учетных записей.
для присоединения политики SCP к aws учетной записи, я использую terraform's ресурс ниже:
resource "aws_organizations_policy_attachment" "account" {
for_each = toset(var.aws_account_number_restrict_root_scp)
policy_id = aws_organizations_policy.restrict_root.id
target_id = each.key
}
#aws_account_number_restrict_root_scp should evaluates to something like this:
#["33333443453","333333333333","444444444444"]
Теперь я хочу сгенерировать переменную aws_account_number_restrict_root_scp
на любом языке сценариев. это будут все AWS номера счетов в AWS организации, кроме номера, указанного владельцами счетов. переменная должна быть в указанном выше формате.
Я получаю все aws номера счетов в требуемом формате, используя приведенный ниже, но не могу удалить номер, предоставленный владельцами учетных записей.
#!/bin/bash
#echo $0
var=$(aws organizations list-accounts --query 'Accounts[*].Id')
echo $var
Как отфильтровать $var
путем удаления номеров учетных записей, предоставленных владельцем учетной записи?
Проще говоря,
var=[
{
"Status": "ACTIVE",
"Name": "XYZ",
"JoinedMethod": "INVITED",
"Id": "3234443322122"
},
{
"Status": "ACTIVE",
"Name": "ABC",
"JoinedMethod": "CREATED",
"Id": "12345678901"
},
{
"Status": "ACTIVE",
"Name": "PQR",
"JoinedMethod": "CREATED",
"Id": "3444550998293"
}
]
exception=["3444550998293"]
#then expected result should be:
echo $expected_output
[
"3234443322122",
"12345678901"
]
примечание: $var
создается во время выполнения и имеет более 200 элементов и $exception
- ожидаемые пользователем данные.