で APIレベル (s3api) コマンドを使用する AWS CLI - AWS Command Line Interface

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

で APIレベル (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 オペレーションを許可するアクセス許可が必要です。

  • 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) にフルコントロールを付与し、すべてのユーザーに読み取りアクセス許可を付与する方法を示しています。「全員」の識別子は、パラメータとしてURI渡す特別な から取得されます。

$ aws s3api put-bucket-acl --bucket MyBucket --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 にログファイルに対するフルコントロールが付与され、すべてのユーザーがログファイルへの読み取りアクセス権を持ちます。Amazon S3 ログ配信システム ( で指定) に、バケットへのログの読み取りと書き込みに必要なアクセス許可を付与するには、 put-bucket-acl コマンドも必要であることに注意してください。 URI

$ aws s3api put-bucket-acl --bucket MyBucket --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 MyBucket --bucket-logging-status file://logging.json

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

{ "LoggingEnabled": { "TargetBucket": "MyBucket", "TargetPrefix": "MyBucketLogs/", "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 リファレンス:

サービスリファレンス: