pub enum DeliverySender<'a> {
Service {
principal: &'a str,
source_arn: &'a str,
source_account: &'a str,
},
Identity {
arn: Option<&'a str>,
},
}Expand description
Who sends a message into an SQS queue through the delivery bus, which decides how SQS calls KMS for an encrypted queue.
AWS services deliver in one of two ways. SNS (topic subscriptions), S3
(event notifications) and EventBridge (rule targets) send as their own
service principal, so the queue’s key policy must name that principal
for SQS to encrypt the message; the AWS-managed aws/sqs key’s policy
admits only callers of the account, so these deliveries fail (recorded).
Scheduler, Pipes, Step Functions, API Gateway and Lambda destinations
send with an IAM role of the account (or the caller’s identity), which
aws/sqs admits.
Variants§
Service
An AWS service principal (sns.amazonaws.com) acting for its
resource source_arn owned by source_account.
Identity
An IAM identity of the queue’s account: the role a service acts as, or the caller, named by ARN when known.
Trait Implementations§
Source§impl<'a> Clone for DeliverySender<'a>
impl<'a> Clone for DeliverySender<'a>
impl<'a> Copy for DeliverySender<'a>
Source§impl<'a> Debug for DeliverySender<'a>
impl<'a> Debug for DeliverySender<'a>
impl<'a> Eq for DeliverySender<'a>
Source§impl<'a> PartialEq for DeliverySender<'a>
impl<'a> PartialEq for DeliverySender<'a>
impl<'a> StructuralPartialEq for DeliverySender<'a>
Auto Trait Implementations§
impl<'a> Forget for DeliverySender<'a>
impl<'a> Freeze for DeliverySender<'a>
impl<'a> Move for DeliverySender<'a>
impl<'a> RefUnwindSafe for DeliverySender<'a>
impl<'a> Send for DeliverySender<'a>
impl<'a> Sync for DeliverySender<'a>
impl<'a> Unpin for DeliverySender<'a>
impl<'a> UnsafeUnpin for DeliverySender<'a>
impl<'a> UnwindSafe for DeliverySender<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.