S3バケット
以下の作業は予めS3にYourBucketName
というbucketを作成しているものとする。
S3アクセス可能とするIAMユーザの作成
IAMユーザ作成後、インラインポリシーを作成。以下は指定のバケット(YourBuketName)に対するS3FullAccessのポリシーとなる。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:GetAccessPoint", "s3:PutAccountPublicAccessBlock", "s3:GetAccountPublicAccessBlock", "s3:ListAllMyBuckets", "s3:ListAccessPoints", "s3:ListJobs", "s3:CreateJob", "s3:HeadBucket" ], "Resource": "*" }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": "s3:*", "Resource": [ "arn:aws:s3:::YourBucketName/*", "arn:aws:s3:::YourBucketName" ] } ] }
aws cliのprofile設定
cliが利用するprofileに以下のように記述する。YourProfileName
は自由に識別し易い文字列を設定しておけばよい。
AccessKeyとSecretはIAMユーザ作成時に取得しておいたものを記載する。
~/.aws/config
[YourProfileName] region=ap-northeast-1 #指定のリージョン
~/.aws/config
[YourProfileName] aws_access_key_id=YourAccessKey aws_secret_access_key=YourSecret
S3へのファイルアップロード
アクセスコントロールを公開にしてアップロード。--profile
で使用するprofileを変更できる。
$ aws s3 cp fromFilePath s3://YourBuketName/directory/ --acl public-read --profile=YourProfileName
権限のないバケットのアップロードはエラーがでる。
$ aws s3 cp fromFilePath s3://NotPermissionBucket/directory/ --acl public-read --profile=YourProfileName upload failed: fromFilePath to s3://NotPermissionBucket/directory/ An error occurred (AccessDenied) when calling the PutObject operation: Access Denied
バケットが存在しない場合。
$ aws s3 cp fromFilePath s3://NotPermissionBucket/directory/ --acl public-read --profile=YourProfileName An error occurred (NoSuchBucket) when calling the PutObject operation: The specified bucket does not exist
リンク
リンク
リンク