PDATE:翌日すべて正常に動作します!?!したがって、答えは、新しいIAMユーザーを作成した後、または新しいバケットを作成した後、アップロードが機能するまで、しばらく待つ必要があるということになると思います。
専用のIAMユーザーを作成してから、aws configure
とキーを指定し、「eu-west-1」リージョンを指定しました。 〜/ .aws/configで正しい情報を確認できます。
私は試した aws s3 mb s3://backup
が既に存在すると言われました。 aws s3 ls
確認していません。しかしながら aws s3 mb s3://backup-specialtest
うまくいきました。
しかし、私がしようとするとaws s3 cp test.tgz s3://backup-specialtest
取得:
A client error (AccessDenied) occurred when calling the CreateMultipartUpload operation: Anonymous users cannot initiate multipart uploads. Please authenticate.
問題になるのは、大きなファイルだけではありません。 6バイトのテキストファイルを作成し、aws s3 cp test.txt s3://backup-specialtest/
が得ます:
upload failed: ./test.txt to s3://backup-specialtest/test.txt A client error (AccessDenied) occurred when calling the PutObject operation: Access Denied
aws s3 ls s3://backup-specialtest
がくれます:
A client error (AccessDenied) occurred when calling the ListObjects operation: Access Denied
aws s3api get-bucket-acl --bucket backup-specialtest
がくれます:
A client error (AccessDenied) occurred when calling the GetBucketAcl operation: Access Denied
AWSウェブコンソールで、ユーザーに「AmazonS3FullAccess」ポリシーをすでにアタッチしていました。ポリシーの表示をクリックすると、次のようになります。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "*"
}
]
}
それは見栄えがいいです。彼はすべてのリソースですべてのS3アクションを実行できます。
これを書いている間、私はまだ新しいバケットを作成できることを再確認するつもりだと思いました、そして途中で何も壊していませんでした。だから私はaws s3 mb s3://another-test
および得た:
make_bucket failed: s3://another-test/ A client error (BucketAlreadyExists) occurred when calling the CreateBucket operation: The requested bucket name is not available. The bucket namespace is shared by all users of the system. Please select a different name and try again.
しかし、私が試したとき:aws s3 mb s3://another-test-2
成功しました:
make_bucket: s3://another-test-2/
そして、そこにあります:aws s3 ls
2015-11-13 11:07:10 another-test-2
2015-11-13 10:18:53 backup-specialtest
2014-08-05 21:00:33 something-older
(最後のバケットは、昨年rootユーザーによって作成されたようで、空です。)
最初に、バケット名がAmazonドメイン全体で一意であることを理解する必要があります。したがって、ユーザーがすでに「backup」という名前のバケットを持っている場合、この名前で新しいバケットを作成することはできません。
つまり、バケットの権限を管理するには、主に2つの方法があります。
それ以外の場合は、バケットポリシーを使用することもできます(上記の権限と同じ場所)。バケットポリシーの例 here があります。例として、次のようなものはバケットを公開する必要があります:
{"Version": "2012-10-17",
"Statement": [
{
"Sid": "myPolicy",
"Effect": "Allow",
"Principal": "*",
"Action": "*",
"Resource": [
"arn:aws:s3:::YOUR_BUCKET_NAME/*",
"arn:aws:s3:::YOUR_BUCKET_NAME"
]
}
]}