Я пытаюсь подключить лямбду к секрету согласно Документы AWS.
Я установил для секрета следующую политику на основе ресурсов и убедился, что он действительно установлен:
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789:role/my-lambda-execution-role"
},
"Action": ["secretsmanager:GetSecret", "secretsmanager:GetSecretValue"],
"Resource": "*",
"Condition": {
"ForAnyValue:StringEquals": {
"secretsmanager:VersionStage": "AWSCURRENT"
}
}
}]
}
Однако я получаю тайм-ауты при попытке фактически получить политику (используя сгенерированный Amazon стартовый код для клиента python3). Я выполняю Lambda в веб-среде IDE.
Я пробовал с фильтром условий и без него. Я также, на всякий случай, предоставил политику SecretsManagerReadWrite роли выполнения лямбда-выражения. Никакого эффекта - все равно таймауты.
У меня такое ощущение, что я упускаю какой-то важный шаг, но я понятия не имею, что это может быть ...
Кто-нибудь может помочь? Спасибо!
Вы действительно понимаете Тайм-аут и нет В доступе отказано ошибка?
Если это так и у вас истекает тайм-аут, более вероятно, что ваш Конфигурация лямбда-сети это неверно. Если бы политика была неправильной, вы бы получили В доступе отказано, а не Тайм-аут.
Например, если он работает в VPC в общедоступной подсети, ему может не быть назначен общедоступный IP-адрес или если он работает в частной подсети, может не быть настроен шлюз NAT. Если Lambda не требуется доступ к ресурсам VPC, вы можете запустить его вне VPC (который также используется по умолчанию, VPC-Lambda - особый случай).
Надеюсь, это поможет :)