- Newest
- Most votes
- Most comments
Hello,
You can achieve your use case by restricting the user's "Get and Put" Object permissions for that particular S3 location (query result location) and then to still run queries and to view results via Athena, you can consider using AWS global condition context keys such as "aws:CalledViaLast".
{ "Sid": "BlockAthenaDownloads", "Effect": "Deny", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::athenaquery_result_loction/prefix/*", "Condition": { "StringNotEquals": { "aws:calledViaLast": [ "athena.amazonaws.com" ] } } }
Please refer to the documentation below to learn more about AWS global condition context keys:
[+] AWS global condition context keys - https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-calledvia
Further, to create policy via terraform please refer to the below link:
[+] https://registry.terraform.io/providers/-/aws/latest/docs/resources/iam_role_policy_attachment
Thank you!
Relevant content
- asked 2 years ago
- asked 3 years ago
- AWS OFFICIALUpdated 5 months ago
- AWS OFFICIALUpdated 5 months ago
- AWS OFFICIALUpdated 5 months ago
- AWS OFFICIALUpdated 6 months ago
Thank you! It worked...