ฉันกำลังสับสนอยู่ใน AWS พยายามคิดว่าฉันพลาดอะไรบ้างที่นี่ ฉันต้องการทำให้เป็นเช่นนั้นเพื่อให้ผู้ใช้ IAM สามารถดาวน์โหลดไฟล์จากที่เก็บข้อมูล S3 - โดยไม่เพียง แต่ทำให้ไฟล์เป็นแบบสาธารณะทั้งหมด แต่ฉันถูกปฏิเสธการเข้าถึง หากใครสามารถเห็นสิ่งที่ปิดฉันจะถูก stoked
สิ่งที่ฉันทำไปแล้ว:
- สร้างผู้ใช้ชื่อ my-user (เพื่อเป็นตัวอย่าง)
- สร้างคีย์การเข้าถึงสำหรับผู้ใช้และวางไว้ใน ~ / .aws บนอินสแตนซ์ EC2
- สร้างนโยบายฝากข้อมูลที่ฉันต้องการให้สิทธิ์การเข้าถึงแก่ผู้ใช้ของฉัน
- เรียกใช้คำสั่ง
aws s3 cp --profile my-user s3://my-bucket/thing.zip .
นโยบายถัง:
{
"Id": "Policy1384791162970",
"Statement": [
{
"Sid": "Stmt1384791151633",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::my-bucket/*",
"Principal": {
"AWS": "arn:aws:iam::111122223333:user/my-user"
}
}
]
}
ผลลัพธ์คือA client error (AccessDenied) occurred: Access Denied
แม้ว่าฉันสามารถดาวน์โหลดโดยใช้คำสั่งเดียวกันและคีย์การเข้าถึงเริ่มต้น (บัญชีรูท?)
ฉันพยายามเพิ่มนโยบายผู้ใช้ด้วย ในขณะที่ฉันไม่รู้ว่าทำไมมันถึงมีความจำเป็นฉันคิดว่ามันจะไม่เจ็บปวดดังนั้นฉันจึงแนบไฟล์นี้กับผู้ใช้ของฉัน
{
"Statement": [
{
"Sid": "Stmt1384889624746",
"Action": "s3:*",
"Effect": "Allow",
"Resource": "arn:aws:s3:::my-bucket/*"
}
]
}
ผลลัพธ์เดียวกัน