AWS re:Postを使用することにより、以下に同意したことになります 利用規約

タグ付けされた質問 Amazon Simple Storage Service (S3)

コンテンツの言語: 日本語

並べ替え 最新

以下に記載されている質問と回答を閲覧したり、フィルタリングして並べ替えて結果を絞り込んだりできます。

  • 1
  • 2
  • 12 件 / ページ

タグ情報を使用したIAMポリシー制御

特定のタグ情報(キーと値)が付与されたリソース(EC2インスタンス、S3バケット)の操作が可能となる制御をポリシーで実装したいと考えております。 「ec2:ResourceTag」や「s3:ResourceTag」を使用することで実現できると想定しており、以下のポリシーを適用したところ、マネジメントコンソール上から全てのEC2インスタンス、S3バケットが表示されない状態となってしまいます。 エラーメッセージは「インスタンスデータ You are not authorized to perform this operation. の取得中にエラーが発生しました。」と表示されます。 IAMポリシーにて特定のタグ情報が付与されたリソースのみ操作可能とする制御の実現可否及び実現可能な場合、ポリシーの例をご教示頂けませんでしょうか。 なお、ポリシーは可能な限り簡素化して作成したく、Actionを細かく設定することは避けたいと考えております。 ■適用したポリシー { "Version": "2012-10-17", "Statement": \[ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "ec2:*", "Resource": "*", "Condition": { "StringEquals": { "ec2:ResourceTag/tag-key": "tag-value" } } }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": "s3:*", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/tag-key": "tag-value" } } } ] }
4
回答
0
投票
7
ビュー
質問済み 2年前

PHPのCURL関数を用いた任意のバケットの内容取得の方法について

はじめまして。 aws初心者のため、基本的なことを聞いてしまってたら申し訳ございません。 現在、PHPのCURL関数を用いた任意のバケットの中のオブジェクトの内容を取得する方法を検討しております。 当方環境がSDKの導入ができないため、CURL関数を用いてRestAPIにリクエストを送ることを試しております。 IAMからアクセスキーとシークレットを発行して試したところ、 バケットの一覧は取得できたのですが、バケットの内容の取得を試みた場合、 _The request signature we calculated does not match the signature you provided. Check your key and signing method._ とのエラーが出てしまい、内容取得ができませんでした。 バケット一覧が取得できたため、バケット単位の認証設定などが影響しているかと思い、パブリックアクセス可にして試してみたのですが、上記エラーはかわりありませんでした。 コードは以下の通りで試してみております。 不足点等あれば、ご指摘いただけますとありがたいです。 情報の取得のやり方など、ご教示いただけますと幸いにございます。 何卒よろしくお願いいたします。 ``` $secretAccessKey = 'シークレットアクセスキー'; $accessKeyId = 'アクセスキーID'; // ----- Signature ----- // HTTP-Verb $httpVerb = 'GET' . "\n"; // Content-MD5 $contentMd5 = "\n"; // Content-Type $contentType = "\n"; // Date $datetime = new DateTime('now', new DateTimeZone('UTC')); $date = $datetime->format(DateTime::RFC1123) . "\n"; // CanonicalizedAmzHeaders $canonicalizedAmzHeaders = ''; // CanonicalizedResource $canonicalizedResource = '/バケット名'; // StringToSign $stringToSign = $httpVerb . $contentMd5 . $contentType . $date . $canonicalizedAmzHeaders . $canonicalizedResource; var_dump($stringToSign); // Signature $hash = hash_hmac('sha1', $stringToSign, $secretAccessKey, true); $signature = base64_encode($hash); var_dump($signature); // ----- Authorization Header ----- // Authorization $authorization = 'AWS' . ' ' . $accessKeyId . ':' . $signature; // ----- HTTP Request ----- // Gets list of buckets. $ch = curl_init('http://バケット名.s3.us-east-1.amazonaws.com'); $headers = array( 'Authorization: ' . $authorization, 'Date: ' . $date, ); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $body = curl_exec($ch); curl_close($ch); ```
2
回答
0
投票
0
ビュー
mitani
質問済み 3年前

Amazon S3の署名バージョンについて

お世話になっております。 サーバーアクセスログ取得で、署名バージョンを確認したところ署名バージョンの箇所で「-」と記載されていました。 調べたところ、署名バージョンの箇所での「-」は認証されていないリクエストの場合に表示されるとのことでした。https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/LogFormat.html こちらも2019年6月23日以降、署名バージョン2と同様にs3へのリスクエストが失敗し、使用できなくなってしまうのでしょうか。 処理は下記の通りです。 サーバが返した情報($resultArray)をそのまま使ってFormDataを作り、ajaxでPOST通信しております。 $params = array( 'access_key' => AWSAccessKeyId, 'secret_key' => AWSSecretAccessKey, 'bucket_name' => バケット名, 'region' => リージョン名, 'allowed_file_size' => $maxSize, // eg: 1073741824 (1 GB) ); $dates = array( 'short' => gmdate('Ymd'), 'iso' => gmdate('Ymd\THis\Z'), 'expiry' => 3600, ); // ポリシー作成 $policy = base64_encode(json_encode(array( 'expiration' => gmdate('Y-m-d\TG:i:s\Z', strtotime(300)), 'conditions' => array( array('bucket' => $params\['bucket_name']), array('starts-with', '$key', $imageDir.'/'), array('starts-with', '$Content-Type', ''), array('success_action_status' => $status), array('x-amz-credential' => implode('/', array($params\['access_key'], $dates\['short'] , $params\['region'], 's3', 'aws4_request'))), array('x-amz-algorithm' => 'AWS4-HMAC-SHA256'), array('content-length-range', 0, $params\['allowed_file_size']), array('x-amz-date' => $dates\['iso']), array('x-amz-expires' => '' . $dates\['expiry'] . ''), ), ))); //署名計算 $signature = hash_hmac('sha256', $dates\['short'], 'AWS4' . $params\['secret_key'], true); $signature = hash_hmac('sha256', $params\['region'], $signature, true); $signature = hash_hmac('sha256', 's3', $signature, true); $signature = hash_hmac('sha256', 'aws4_request', $signature, true); $signature = hash_hmac('sha256', $policy, $signature); //リクエストに追加する $resultArray = array( 'url' => 'https://' . $params\['bucket_name'] . '.s3-'. $params\['region'] .'.amazonaws.com/', 'form' => array ( 'key' => $imageDir."/".$imageFileName, 'success_action_status' => '200', 'policy' => $policy, 'Content-Type' => '', 'x-amz-algorithm' => 'AWS4-HMAC-SHA256', 'x-amz-credential' => implode('/', array($params\['access_key'], $dates\['short'], $params\['region'], 's3', 'aws4_request')), 'x-amz-date' => $dates\['iso'], 'X-amz-expires' => $dates\['expiry'], 'X-amz-signature' => $signature ) ); return $resultArray;
2
回答
0
投票
1
ビュー
ncd-aws
質問済み 4年前

Amazon S3の署名バージョンの廃止に伴う改修について

お世話になっております。 下記の通り、Amazon S3で署名バージョン2が2019年6月23日に使用できなくなる件の改修方法について 質問させていただきます。 https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/UsingAWSSDK.html#UsingAWSSDK-sig2-deprecation 現在業務では、AWSPHPSDKv2 を使用しており、バージョンアップは難しいため、 PHP SDK v2 用の Amazon S3 サービスクライアントを構築する場合は、signature パラメータを v4 に設定する設定を取り入れようとしております。 ただ、サーバ側からではなく、クライアント側から直接下記のようにS3へファイルをアップロードする処理があります。 1.画面から対象のZIPファイルを選択し、選択されたZIPファイルの情報をサーバに送る 2.サーバがクライアントの認証及びS3へアクセスするためのトークンを発行する 3.サーバからもらったポリシーとシグニチャと一緒に選択されたZIPファイルをS3に送る 上記の処理のうち、2でS3へアクセスするためのトークンを発行しているのですが、 署名バージョンを指定する設定が既存の処理に既に組み込まれており、署名バージョン4を明記する ためにどこを改修を行えばよいかがわかりません。 下記にトークン作成処理を記述します。 $expiration = gmdate ( "Y-m-d\TH:i:s\Z", strtotime ( 20 ) ); // Policy Limit $acl = 'private'; // set acl (private | public-read | public-read-write | authenticated-read | bucket-owner-read | bucket-owner-full-control) $status = '200'; // return this status code when upload success. $maxSize = 1024; $policy = <<<EOS { "expiration": "$expiration", "conditions": \[ {"bucket": "接続先バケット名"}, \["starts-with", "\$key", "$imageDir/"], {"acl": "$acl"}, {"success_action_status": "$status"}, \["starts-with", "\$Content-Type", ""], \["content-length-range", 0, $maxSize] ] } EOS; $signature = hash_hmac ( "sha1", base64_encode ( $policy ), AWSセレクトキー, true );←ここで署名を作成している $resultArray = array( 'url' => 'https://' . 接続先バケット名 . '.s3.amazonaws.com/', 'form' => array ( 'key' => ファイルディレクトリパス, 'AWSAccessKeyId' => AWSキー, 'acl' => $acl, 'success_action_status' => $status, 'policy' => base64_encode ( $policy ), 'signature' => base64_encode ( $signature ), 'Content-Type' => 'application/zip' ) ); 署名バージョン4を使用するように明記するにはどのように設定すればよいのか、アドバイスの程お願いいたします。 参考URL:https://qiita.com/supertaihei02/items/a4f663d837e51f2f72b0
2
回答
0
投票
2
ビュー
ncd-aws
質問済み 4年前

バケットによってサイズメトリクスが取得できない

S3を試用レベルで使っています。 バケットごとの使用量をAPI等で取得したいと思って調べています。aws s3 ls --recursive コマンドでも取得できますが、オブジェクト数が増えると処理時間がかかりそうなこと、1日ごとの値が取得できれば十分(リアルタイムでなくても良い)、ということから、CloudWatch のメトリクスを取得したいと思っています。 しかしながら、どのような方法を使っても、4つあるバケットのうち1つについてしかメトリクスを取得することができません。バケットの作り方が悪いのか、取得しようとしている方法が悪いのかわからないので、教えていただけると助かります。 バケット一覧 $ aws s3 ls 2018-10-05 17:19:07 samplebucket.owncloud01 → メトリクスを取得できる 2018-11-30 10:06:27 samplebucket.test01 → 取得不可 2018-07-26 16:23:53 samplebucketaws01 → 取得不可 2018-11-27 20:36:30 samplebucketaws02 → 取得不可 ※samplebucketの部分はいわゆる伏せ字です ※バケットは4つとも us-east-1 に作成されています aws s3 ls --recursive を使ったシェルスクリプトでは、全てのバケットの使用量が取得できました。 samplebucket.owncloud01 TotalObjects:3 TotalSize:3.7MiB samplebucket.test01 Objects:0 Size:0Bytes samplebucketaws01 Objects:2 Size:24.5MiB samplebucketaws02 Objects:1 Size:25.0MiB バケット設定のプロパティ(全てオフ)や、アクセス制限のパブリックアクセス設定、アクセスコントロールリスト、バケットポリシー、CORSの設定等は、全て同じでした。 サイズメトリクスは1日1回更新されるということなので、新しいバケットのメトリクスが取得できないのはわかりますが、もっと前に作成したバケットの情報が取得できない状況になっています。 (1)ブラウザのS3コンソール メトリクスを取得できるバケットについてはグラフ等が表示されます。 取得できないバケットについては「ストレージに対して現在利用可能なメトリクスはありません」と表示されます。 メトリクス設定は「ストレージのメトリクス(free)」がデフォルトで選択済みになっていて、むしろ解除できない状態でした。 (2)CloudWatch 利用可能なストレージメトリクスとして、取得できるバケットの BucketSizeBytes と NumberOfObjects の2個が表示されます。他のバケットについては選択肢に出てきません。 (3)aws cli メトリクスを取得できるバケット(samplebucket.owncloud01)とできないバケット(samplebucketaws01)を比較したところ下記のような感じでした。 メトリクスを取得できるバケット(samplebucket.owncloud01) $ aws cloudwatch get-metric-statistics --region us-east-1 --namespace AWS/S3 --metric-name BucketSizeBytes --dimensions Name=BucketName,Value=samplebucket.owncloud01 Name=StorageType,Value=StandardStorage --statistics Sum --start-time 2018-10-31T00:00:00Z --end-time 2018-10-31T23:59:59Z --period 86400 { "Datapoints": \[ { "Timestamp": "2018-10-31T00:00:00Z", "Sum": 3850058.0, "Unit": "Bytes" } ], "Label": "BucketSizeBytes" } ※情報が返される メトリクスを取得できないバケット(samplebucketaws01) $ aws cloudwatch get-metric-statistics --region us-east-1 --namespace AWS/S3 --metric-name BucketSizeBytes --dimensions Name=BucketName,Value=samplebucketaws01 Name=StorageType,Value=StandardStorage --statistics Sum --start-time 2018-10-31T00:00:00Z --end-time 2018-10-31T23:59:59Z --period 86400 { "Datapoints": \[], "Label": "BucketSizeBytes" } ※情報が返されない ※aws コマンドに --debug オプションを指定して情報を比較しましたが両者に特に違いはありませんでした。
3
回答
0
投票
1
ビュー
質問済み 4年前

AWS(S3)動画の推奨フォーマットについて

AWS S3を利用しています。 動画ファイルでスマホ(Android、iphone)やipadでは再生できないものがありました。(PC では再生可能) 動画の推奨フォーマットがわかりでしたら教えていただけますでしょうか? 参考までに、再生できなかった動画のコーデック情報は下記の通りです。 よろしくお願いします。 【General】 Format MPEG-4 Format profile Base Media / Version 2 Codec ID mp42 (mp42/mp41) File size 28.4 MiB Duration 2 min 25 s Overall bit rate mode Variable Overall bit rate 1 644 kb/s Encoded date UTC 2017-11-06 2:45:38 Tagged date UTC 2017-11-06 2:45:38 TIM 00;00;00;00 TSC 30000 TSZ 1001 【Video】 Format AVC Format/Info Advanced Video Codec Format profile High@L3.1 Format settings CABAC / 4 Ref Frames Format settings, CABAC Yes Format settings, ReFrames 4 frames Codec ID avc1 Codec ID/Info Advanced Video Coding Duration 2 min 25 s Bit rate mode Variable Bit rate 1 449 kb/s Maximum bit rate 12.0 Mb/s Width 640 pixels Height 360 pixels Display aspect ratio 16:09 Frame rate mode Constant Frame rate 29.970 (30000/1001) FPS Standard NTSC Color space YUV Chroma subsampling 4:02:00 Bit depth 8 bits Scan type Interlaced Scan type, store method Separated fields Scan order Top Field First Bits/(Pixel*Frame) 0.21 Stream size 25.1 MiB (88%) Language English Encoded date UTC 2017-11-06 2:45:38 Tagged date UTC 2017-11-06 2:45:38 Color range Limited Color primaries BT.601 NTSC Transfer characteristics BT.601 Matrix coefficients BT.601 【Audio】 ID 2 Format AAC Format/Info Advanced Audio Codec Format profile LC Codec ID mp4a-40-2 Duration 2 min 25 s Source duration 2 min 25 s Bit rate mode Variable Bit rate 192 kb/s Maximum bit rate 278 kb/s Channel(s) 2 channels Channel positions Front: L R Sampling rate 48.0 kHz Frame rate 46.875 FPS (1024 SPF) Compression mode Lossy Stream size 3.28 MiB (12%) Source stream size 3.28 MiB (12%)
2
回答
0
投票
0
ビュー
質問済み 5年前
  • 1
  • 2
  • 12 件 / ページ