での API-Level (s3api) コマンドの使用 AWS CLI - AWS Command Line Interface

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

での API-Level (s3api) コマンドの使用 AWS CLI

APIレベルのコマンド (s3apiコマンドセットに含まれる) は、Amazon Simple Storage Service (Amazon S3) への直接アクセスを提供しAPIs、高レベルのs3コマンドで公開されていない一部のオペレーションを有効にします。これらのコマンドは、サービスの機能への APIレベルのアクセスを提供する他の AWS のサービスと同等です。s3 コマンドの詳細については、「での高レベル (s3) コマンドの使用 AWS CLI」を参照してください。

このトピックでは、Amazon S3 にマッピングされた下位レベルのコマンドを使用する方法を示す例を示しますAPIs。さらに、各 S3 API コマンドの例は、AWS CLI バージョン 2 リファレンスガイドs3apiセクションにあります。

前提条件

s3api コマンドを実行するには、次のことが必要です。

  • AWS CLIをインストールして設定します。詳細については、「の最新バージョンへのインストールまたは更新 AWS CLI」および「の認証認証情報とアクセス認証情報 AWS CLI」を参照してください。

  • 使用するプロファイルには、例によって実行される AWS オペレーションを許可するアクセス許可が必要です。

  • Amazon S3 の以下の用語を解説します。

    • バケット - トップレベルの Amazon S3 フォルダ。

    • プレフィックス - バケット内の Amazon S3 フォルダ。

    • オブジェクト - Amazon S3 バケットでホストされているすべてのアイテム。

カスタムを適用する ACL

高レベルのコマンドでは、 --aclオプションを使用して、定義済みのアクセスコントロールリスト (ACLs) を Amazon S3 オブジェクトに適用できます。ただし、そのコマンドを使用してバケット全体の を設定することはできませんACLs。ただし、これを行うにはput-bucket-acl、 APIレベルの コマンドを使用します。

次の例は、2 人の AWS ユーザー (user1@example.comuser2@example.com) にフルコントロールを付与し、すべてのユーザーに読み取りアクセス許可を付与する方法を示しています。「everyone」の識別子は、パラメータとしてURI渡す特殊な から取得されます。

$ aws s3api put-bucket-acl --bucket amzn-s3-demo-bucket --grant-full-control 'emailaddress="user1@example.com",emailaddress="user2@example.com"' --grant-read 'uri="http://acs.amazonaws.com/groups/global/AllUsers"'

の構築方法の詳細についてはACLs、「Amazon Simple Storage Service APIリファレンス」のPUT「バケット acl」を参照してください。CLIなどの のs3apiACLコマンドはput-bucket-acl、同じ短縮引数表記 を使用します。

ログ記録ポリシーの設定

API コマンドは、バケットログ記録ポリシーput-bucket-loggingを設定します。

次の例では、 AWS ユーザー user@example.com にログファイルに対する完全な制御が付与され、すべてのユーザーがログファイルへの読み取りアクセス権を持ちます。put-bucket-acl コマンドは、Amazon S3 ログ配信システム ( で指定URI) に、バケットへのログの読み取りと書き込みに必要なアクセス許可を付与するためにも必要であることに注意してください。

$ aws s3api put-bucket-acl --bucket amzn-s3-demo-bucket --grant-read-acp 'URI="http://acs.amazonaws.com/groups/s3/LogDelivery"' --grant-write 'URI="http://acs.amazonaws.com/groups/s3/LogDelivery"' $ aws s3api put-bucket-logging --bucket amzn-s3-demo-bucket --bucket-logging-status file://logging.json

前のコマンドで logging.json ファイルの内容は、次のとおりです。

{ "LoggingEnabled": { "TargetBucket": "amzn-s3-demo-bucket", "TargetPrefix": "amzn-s3-demo-bucketLogs/", "TargetGrants": [ { "Grantee": { "Type": "AmazonCustomerByEmail", "EmailAddress": "user@example.com" }, "Permission": "FULL_CONTROL" }, { "Grantee": { "Type": "Group", "URI": "http://acs.amazonaws.com/groups/global/AllUsers" }, "Permission": "READ" } ] } }

リソース

AWS CLI リファレンス:

サービスリファレンス: