2013-07-12 4 views
2

Role1이라는 역할이 있습니다. 그 역할에는 아래 정책이 적용됩니다.S3 IAM 역할로 인증에 실패한 Boto

IAM 역할이 Role1 인 ec2 인스턴스가 있습니다.

conn.get_bucket ('fooo_udata')을 시도하면 403 오류가 반환됩니다.

이것에 대한 아이디어가 있으십니까?

{ 
"Statement": [ 
{ 
    "Effect": "Allow", 
    "Action": ["s3:ListAllMyBuckets"], 
    "Resource": "arn:aws:s3:::*" 
}, 
{ 
    "Effect": "Allow", 
    "Action": ["s3:ListBucket","s3:GetBucketLocation","s3:*"], 
    "Resource": ["arn:aws:s3:::fooo_uadata/","arn:aws:s3:::fooo_uadata/*"] 
}, 
{ 
    "Effect": "Allow", 
    "Action": ["s3:PutObject","s3:GetObject","s3:DeleteObject"], 
    "Resource": ["arn:aws:s3:::fooo_uadata/","arn:aws:s3:::fooo_uadata/*"] 
} 
] 
} 

답변

3

"/"문자를 버킷 정책에 포함 시키려고하지 않습니다. 그래서, 변경 시도 : 여기에

{ 
    "Effect": "Allow", 
    "Action": ["s3:ListBucket","s3:GetBucketLocation","s3:*"], 
    "Resource": ["arn:aws:s3:::fooo_uadata/","arn:aws:s3:::fooo_uadata/*"] 
}, 

:

{ 
    "Effect": "Allow", 
    "Action": ["s3:ListBucket","s3:GetBucketLocation","s3:*"], 
    "Resource": ["arn:aws:s3:::fooo_uadata","arn:aws:s3:::fooo_uadata*"] 
}, 

당신의 버킷의 이름 foo_uadata하지 foo_uadata/ 때문에.

관련 문제