该错误通常在尝试从AWS管理的服务控制策略(SCP)中分离实体时发生,因为该策略是由AWS管理。您可以尝试创建自定义SCP并将其应用于实体,然后删除原始的AWS管理策略。这里是一个示例代码。
import boto3
# 获取AWS Organizations服务客户端
org_client = boto3.client('organizations')
# 创建自定义SCP
response = org_client.create_policy(
Content='{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"ExampleStatementSid\",\n \"Effect\": \"Deny\",\n \"Action\": \"*\",\n \"Resource\": \"*\"\n }\n ]\n}\n',
Description='Example Policy',
Name='ExamplePolicy',
Type='SERVICE_CONTROL_POLICY'
)
# 将自定义SCP应用于实体
response = org_client.attach_policy(
PolicyId='ExamplePolicy',
TargetId='ou-xxxx-yyyy', # 将ou-xxxx-yyyy替换为您想应用该策略的组织单位ID或帐户ID
TargetType='ORGANIZATIONAL_UNIT' # 将TargetType替换为ORGANIZATION或ACCOUNTS以指定目标实体的类型
)
# 删除原始的AWS管理SCP
response = org_client.delete_policy(
PolicyId='AWS-ManagedPolicyForAccountUsage',
Type='SERVICE_CONTROL_POLICY'
)