Я узнаю о AWS
; конкретный вариант использования c, о котором я узнаю, - это добавление объекта к ведру S3
, запускающее уведомление SNS
, на которое подписан Lambda
, тем самым вызывая Lambda
.
Чтение в Интернете привело меня к странице s3api put-bucket-notification-configuration
, на которой написано:
SNS topi c должен иметь прикрепленную к нему политику IAM, которая позволяет Amazon S3 publi sh к нему
Это привело меня к странице sns add-permission
, подпись запроса которой:
add-permission
--topic-arn <value>
--label <value>
--aws-account-id <value>
--action-name <value>
Вопрос: необходимо ли явно добавлять разрешение для SNS
topi c, даже если издатель находится в той же учетной записи, в которой был создан topi c?
Формулировка в связанной документации подразумевает, что это необходимо только в том случае, если издатель из другой учетной записи, но я не уверен, правильно ли я это интерпретирую.
Например, в моих экспериментах все, с чем я работаю, является частью той же учетной записи. Например:
$ aws sns list-topics --profile=admin --endpoint-url=http://localhost:4575
{
"Topics": [
{
"TopicArn": "arn:aws:sns:us-east-1:000000000000:my-test-topic"
}
]
}
$
$ aws --profile=lambda-admin --endpoint-url=http://localhost:4574 lambda list-functions
{
"Functions": [
{
"FunctionName": "first_lambda",
"FunctionArn": "arn:aws:lambda:us-east-1:000000000000:function:first_lambda",
"Runtime": "python3.7",
"Role": "arn:aws:iam::000000000000:role/lambda-role",
"Handler": "first_lambda.lambda_handler",
"CodeSize": 311,
"Description": "",
"Timeout": 5,
"LastModified": "2020-06-16T05:10:16.311+0000",
"CodeSha256": "jRcHzt34ZSDUCyx+INftvu14njRqGeSozKa0Uxv4J98=",
"Version": "$LATEST",
"TracingConfig": {
"Mode": "PassThrough"
},
"RevisionId": "af64db69-0b5a-41ad-86c2-8467a60cf618",
"State": "Active"
}
]
}
(я не нашел способа получить ARN
ведра S3
из интерфейса командной строки, но мой связан с той же учетной записью).