Вопрос или проблема
Я пытаюсь использовать push-уведомления в приложении AWS Mobile для некоторых установленных сигналов тревоги, но получаю это сообщение об ошибке:
"Операцию не удалось выполнить
Пользователь: arn:aws:sts::AAAAAAA:assumed-role/AWSReservedSSO_AWSAdministratorAccess_BBBBBB/CCCCCC не имеет прав на выполнение: notifications:CreateNotificationConfiguration для ресурса: arn:aws:notifications:us-east-1:AAAAAAA:configuration/* с явным запретом"*
При этом AAAAAAA – это целевая учетная запись AWS |
BBBBB – это ID администратора доступа |
CCCCC – это адрес электронной почты администратора.
Контекст:
Пользователь CCCCC (т. е. я) имеет полный доступ администратора. У него есть прикрепленная политика AWS AdministratorAccess, которая является
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
}
Наша среда AWS была настроена третьей стороной с использованием AWS Control Tower Organizations.
Я проверил следующее:
- Границы разрешений набора разрешений AWSAdministratorAccess, к которому привязан мой пользователь – ничего не настроено.
- Все политики управления службами на явный запрет для любого упоминания “уведомлений” – не найдено.
- Все включенные контроли с использованием AWS Control Tower для учетной записи AAAAAAA на любой ссылке явного запрета “уведомлений” – не найдено.
Ближайшая к этому информация, которую я нашел, заключается в том, что, когда я нахожусь в приложении AWS Mobile и выбираю “уведомления”, оно не дает мне выбрать регион, однако сообщение об ошибке подразумевает, что я пытаюсь получить доступ к ресурсу в us-east-1, в то время как моя среда находится в ap-southeast-2, и одним из контролей, включенных в AWS Control Tower, является “[AWS-GR_REGION_DENY] Запретить доступ к AWS на основе запрашиваемого региона AWS”
Детали SCP:
{
"Version": "2012-10-17",
"Statement": [
{
"Condition": {
"StringNotEquals": {
"aws:RequestedRegion": [
"ap-southeast-2"
]
},
"ArnNotLike": {
"aws:PrincipalARN": [
"arn:aws:iam::*:role/AWSControlTowerExecution"
]
}
},
"Resource": "*",
"Effect": "Deny",
"NotAction": [
"a4b:*",
"access-analyzer:*",
"account:*",
"acm:*",
"activate:*",
"artifact:*",
"aws-marketplace-management:*",
"aws-marketplace:*",
"aws-portal:*",
"billing:*",
"billingconductor:*",
"budgets:*",
"ce:*",
"chatbot:*",
"chime:*",
"cloudfront:*",
"cloudtrail:LookupEvents",
"compute-optimizer:*",
"config:*",
"consoleapp:*",
"consolidatedbilling:*",
"cur:*",
"datapipeline:GetAccountLimits",
"devicefarm:*",
"directconnect:*",
"ec2:DescribeRegions",
"ec2:DescribeTransitGateways",
"ec2:DescribeVpnGateways",
"ecr-public:*",
"fms:*",
"freetier:*",
"globalaccelerator:*",
"health:*",
"iam:*",
"importexport:*",
"invoicing:*",
"iq:*",
"kms:*",
"license-manager:ListReceivedLicenses",
"lightsail:Get*",
"mobileanalytics:*",
"networkmanager:*",
"notifications-contacts:*",
"notifications:*",
"organizations:*",
"payments:*",
"pricing:*",
"quicksight:DescribeAccountSubscription",
"resource-explorer-2:*",
"route53-recovery-cluster:*",
"route53-recovery-control-config:*",
"route53-recovery-readiness:*",
"route53:*",
"route53domains:*",
"s3:CreateMultiRegionAccessPoint",
"s3:DeleteMultiRegionAccessPoint",
"s3:DescribeMultiRegionAccessPointOperation",
"s3:GetAccountPublicAccessBlock",
"s3:GetBucketLocation",
"s3:GetBucketPolicyStatus",
"s3:GetBucketPublicAccessBlock",
"s3:GetMultiRegionAccessPoint",
"s3:GetMultiRegionAccessPointPolicy",
"s3:GetMultiRegionAccessPointPolicyStatus",
"s3:GetStorageLensConfiguration",
"s3:GetStorageLensDashboard",
"s3:ListAllMyBuckets",
"s3:ListMultiRegionAccessPoints",
"s3:ListStorageLensConfigurations",
"s3:PutAccountPublicAccessBlock",
"s3:PutMultiRegionAccessPointPolicy",
"savingsplans:*",
"shield:*",
"sso:*",
"sts:*",
"support:*",
"supportapp:*",
"supportplans:*",
"sustainability:*",
"tag:GetResources",
"tax:*",
"trustedadvisor:*",
"vendor-insights:ListEntitledSecurityProfiles",
"waf-regional:*",
"waf:*",
"wafv2:*"
],
"Sid": "GRREGIONDENY"
}
]
}
У меня заканчиваются идеи, и я пока не смог найти решение, несмотря на поиск этой проблемы в Google, чтение документации AWS и т. д.
Буду признателен за любую помощь. Спасибо!
Ответ или решение
Проблема с уведомлениями Push в AWS Mobile APP
Ваша проблема с уведомлениями в AWS Mobile APP связана с ошибкой доступа, которая сигнализирует о том, что у пользователя нет прав на выполнение операции notifications:CreateNotificationConfiguration
из-за явного запрета. Это сообщение об ошибке говорит о том, что в вашей политике IAM или в политике управления службой (SCP) установлены ограничения, которые препятствуют выполнению данных действий.
Анализ ошибки
Ошибка, которую вы получаете:
"Operation could not be performed
User: arn:aws:sts::AAAAAAA:assumed-role/AWSReservedSSO_AWSAdministratorAccess_BBBBBB/CCCCCC is not authorized to perform: notifications:CreateNotificationConfiguration on resource: arn:aws:notifications:us-east-1:AAAAAAA:configuration/* with an explicit deny"
указывает на следующее:
-
Проблема с правами доступа: Пользователь с ARN
arn:aws:sts::AAAAAAA:assumed-role/AWSReservedSSO_AWSAdministratorAccess_BBBBBB/CCCCCC
не имеет разрешений на выполнение операцииnotifications:CreateNotificationConfiguration
. -
Явный запрет в SCP: Данная политика имеет ряд условий, согласно которым доступ к регионам, отличным от
ap-southeast-2
(где находится ваша учетная запись), будет запрещён. Ваша ошибка указывает на обращение кus-east-1
, что входит в противоречие с политикой.
Выявление проблемы
На основании предоставленной информации и сканирования политик, включая наличие разрешений в AdministratorAccess
, можно утверждать, что другие факторы, такие как Service Control Policies (SCP), каким-то образом блокируют доступ.
-
Проверка на наличие явных запретов:
- Вы указали, что не нашли явных запретов для
notifications
в SCP. Однако диспетчер уведомлений в AWS может иметь особые требования к регионам, и если запрос производится вus-east-1
, он будет отклонён, что подтверждает ваше исследование.
- Вы указали, что не нашли явных запретов для
-
Проверка политик:
- Убедитесь, что в других местах (например, в IAM Policies) не установлено никаких правил, которые могли бы запретить доступ.
-
Контекст окружения:
- Убедитесь, что используете правильный регион. Следите за тем, чтобы все операции с уведомлениями выполнялись в
ap-southeast-2
, которая соответствует вашей настройке AWS Control Tower.
- Убедитесь, что используете правильный регион. Следите за тем, чтобы все операции с уведомлениями выполнялись в
Решение проблемы
Для решения данной проблемы рекомендую следующие шаги:
-
Проверка региона: Убедитесь, что все операции по настройке уведомлений происходят в правильном регионе. Если AWS Mobile APP не позволяет выбрать регион, попробуйте использовать AWS Management Console или CLI.
-
Проверка и изменение SCP: Обратите внимание, что если вы настаиваете на использовании регионов, отличных от
ap-southeast-2
, вам может понадобиться изменить SCP. Это может потребовать одобрения со стороны вашей команды администраторов или службы поддержки AWS, если их ограничения слишком жесткие. -
Создание ресурса через AWS CLI или SDK: Если проблема сохраняется, попробуйте создать уведомление через командную строку (CLI) или через AWS SDK. Это поможет в устранении возможных проблем интерфейса.
-
Обратитесь в поддержку AWS: Если ни одно из вышеуказанных действий не приводит к результату, настоятельно рекомендуется обратиться в службу поддержки AWS. Они могут предоставить более детальную информацию о том, почему ваш доступ к
notifications
явно запрещен.
Заключение
Подводя итог, для успешной работы с уведомлениями Push в AWS Mobile APP необходимо внимательно следить за настройками на уровне IAM и SCP. Убедитесь, что все действия выполняются в разрешенном регионе и что политика безопасности позволяет выполнение необходимых операций. Если у вас остались вопросы или возникли дополнительные сложности, не стесняйтесь обращаться за помощью в службу поддержки AWS.