Ross Coundon
07/06/2021, 8:57 PMconst putObjectParams: PutObjectRequest = {
Bucket: bucket,
Key: filename,
Body: 'arse',
};
const result = await s3.putObject(putObjectParams).promise();
I see the object in S3 via the console but it's zero bytesFrank
Body: Buffer.from('arse', 'utf8')
Frank
Frank
await s3.putObject({
Bucket: process.env.MY_BUCKET,
Body: Buffer.from(JSON.stringify(data, null, 2), 'utf8'),
Key: "path/to/file",
ContentType: 'application/json',
}).promise();
Frank
Ross Coundon
07/06/2021, 9:14 PMRoss Coundon
07/06/2021, 9:15 PMRoss Coundon
07/06/2021, 9:16 PMFrank
permissions: [statsCsvBucket],
Ross Coundon
07/06/2021, 9:17 PMRoss Coundon
07/06/2021, 9:17 PMRoss Coundon
07/06/2021, 9:17 PMFrank
AWS.config.update({region:'us-east-1'});
const s3 = new AWS.S3();
Frank
Frank
Frank
Ross Coundon
07/06/2021, 9:25 PMRoss Coundon
07/06/2021, 9:26 PMRoss Coundon
07/06/2021, 9:47 PMRoss Coundon
07/06/2021, 9:49 PMFrank
Ross Coundon
07/06/2021, 9:53 PMRoss Coundon
07/06/2021, 9:54 PMFrank
Ross Coundon
07/06/2021, 10:02 PMconst testS3Arn1 = 'arn:aws:s3:::test-stats-bucket';
const testS3Arn2 = 'arn:aws:s3:::test-stats-bucket/*';
const s3Policy = new PolicyStatement({
effect: Effect.ALLOW,
actions: ['s3:*'],
resources: [testS3Arn1, testS3Arn2],
});
Then:
const saveStatsAsCsvHandler = new Function(this, 'saveStatsAsCsvHandler', {
handler: 'src/main/handlers/api.handleSaveStatsAsCsv',
timeout: scope.local ? 30 : undefined,
memorySize: 1024,
environment: {
...environment,
...rebookingEnvironment,
},
permissions: [s3Policy],
logRetention,
});
with or without
saveStatsAsCsvHandler.addToRolePolicy(s3Policy);
Always results in Access DeniedFrank
.build/cdk.out
, do you see the IAM role has the added policy?Ross Coundon
07/06/2021, 10:05 PMRoss Coundon
07/06/2021, 10:06 PMFrank
permissions: [s3Policy],
vs granting permission to the SST S3 bucket
permissions: [s3Bucket],
while keeping everything else the same.Ross Coundon
07/06/2021, 10:09 PM{
"Action": "s3:*",
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::test-stats-bucket",
"arn:aws:s3:::test-stats-bucket/*"
]
},
Ross Coundon
07/06/2021, 10:09 PMRoss Coundon
07/06/2021, 10:15 PMpermissions: [s3Policy]
I see
{
"Action": "s3:*",
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::test-stats-bucket",
"arn:aws:s3:::test-stats-bucket/*"
]
},
With
permissions: [s3Bucket]
I see
"Resources": {
"statsCsvBucket9F7B4665": {
"Type": "AWS::S3::Bucket",
"Properties": {
"BucketName": "test-stats-bucket"
},
"UpdateReplacePolicy": "Retain",
"DeletionPolicy": "Retain",
"Metadata": {
"aws:cdk:path": "test-omw-ofsc-be-OmwOfscBeStack-test/statsCsvBucket/Bucket/Resource"
}
},
...
{
"Action": "s3:*",
"Effect": "Allow",
"Resource": [
{
"Fn::GetAtt": [
"statsCsvBucket9F7B4665",
"Arn"
]
},
{
"Fn::Join": [
"",
[
{
"Fn::GetAtt": [
"statsCsvBucket9F7B4665",
"Arn"
]
},
"/*"
]
]
}
]
},
Frank
Frank
Ross Coundon
07/06/2021, 10:32 PMFrank
Frank
Frank
Ross Coundon
07/08/2021, 7:36 AMRoss Coundon
07/08/2021, 8:59 AMRoss Coundon
07/08/2021, 11:59 AMFrank