発信者のアクセス許可を一覧表示する - Amazon Simple Storage Service

発信者のアクセス許可を一覧表示する

S3 データ所有者は、S3 Access Grants を使用して、AWS Identity and Access Management (IAM) ID または AWS IAM Identity Center 企業ディレクトリ ID のアクセス許可を作成できます。IAM アイデンティティと IAM Identity Center ディレクトリ ID は、次に ListCallerAccessGrants API を使用して、S3 Access Grants で定義したとおり、アクセスできる Amazon S3 バケット、プレフィックス、およびオブジェクトを一覧表示できます。この API を使用して、IAM またはディレクトリ ID が S3 Access Grants を介してアクセスできるすべての S3 データを検出します。

この機能を使用すると、特定のエンドユーザーがアクセスできるデータを表示するアプリケーションを構築できます。例えば、お客様が S3 バケットにアクセスするために使用するオープンソース UI コンポーネントである AWS Storage Browser for S3 は、この機能を使用して、S3 Access Grants に基づいて Amazon S3 でアクセスできるデータをエンドユーザーに提示します。もう 1 つの例として、Amazon S3 でデータを参照、アップロード、またはダウンロードするためのアプリケーションを構築する場合、この機能を使用して、エンドユーザーが参照できるツリー構造をアプリケーションに構築できます。

IAM アイデンティティまたは社内ディレクトリアイデンティティのいずれかである被付与者が、AWS Command Line Interface (AWS CLI)、Amazon S3 REST API、および AWS SDK を使用することで、付与されたアクセス許可を一覧表示できます。

AWS CLI をインストールするには、「AWS Command Line Interface ユーザーガイド」の「AWS CLI をインストールする」を参照してください。

次のコマンド例を使用するには、user input placeholders をユーザー自身の情報に置き換えます。

例 発信者のアクセス許可を一覧表示する

リクエスト:

aws s3control list-caller-access-grants \ --account-id 111122223333 \ --region us-east-2 --max-results 5

レスポンス:

{ "NextToken": "6J9S...", "CallerAccessGrantsList": [ { "Permission": "READWRITE", "GrantScope": "s3://amzn-s3-demo-bucket/prefix1/sub-prefix1/*", "ApplicationArn": "NA" }, { "Permission": "READWRITE", "GrantScope": "s3://amzn-s3-demo-bucket/prefix1/sub-prefix2/*", "ApplicationArn": "ALL" }, { "Permission": "READWRITE", "GrantScope": "s3://amzn-s3-demo-bucket/prefix1/sub-prefix3/*", "ApplicationArn": "arn:aws:sso::111122223333:application/ssoins-ssoins-1234567890abcdef/apl-abcd1234a1b2c3d" } ] }
例 バケットに対する発信者のアクセス許可を一覧表示する

grantscope パラメータを使用して結果を絞り込むことができるようになりました。

リクエスト:

aws s3control list-caller-access-grants \ --account-id 111122223333 \ --region us-east-2 --grant-scope "s3://amzn-s3-demo-bucket"" --max-results 1000

レスポンス:

{ "NextToken": "6J9S...", "CallerAccessGrantsList": [ { "Permission": "READ", "GrantScope": "s3://amzn-s3-demo-bucket*", "ApplicationArn": "ALL" }, { "Permission": "READ", "GrantScope": "s3://amzn-s3-demo-bucket/prefix1/*", "ApplicationArn": "arn:aws:sso::111122223333:application/ssoins-ssoins-1234567890abcdef/apl-abcd1234a1b2c3d" } ] }

API 発信者のアクセス許可リストを取得するための Amazon S3 REST API サポートの詳細については、「Amazon Simple Storage Service API リファレンス」の「ListCallerAccessGrants」を参照してください。

このセクションでは、AWS SDK を使用して被付与者が一時認証情報をリクエストする方法の例を説明します。

Java

次のコード例は、特定の AWS アカウントの S3 データに対する API 発信者のアクセス許可を返します。次のコマンド例を使用する際は、user input placeholders をユーザー自身の情報に置き換えます。

例 発信者のアクセス許可を一覧表示する

リクエスト:

Public void ListCallerAccessGrants() { ListCallerAccessGrantsRequest listRequest = ListCallerAccessGrantsRequest.builder() .withMaxResults(1000) .withGrantScope("s3://") .accountId("111122223333"); ListCallerAccessGrantsResponse listResponse = s3control.listCallerAccessGrants(listRequest); LOGGER.info("ListCallerAccessGrantsResponse: " + listResponse); }

レスポンス:

ListCallerAccessGrantsResponse( CallerAccessGrantsList=[ ListCallerAccessGrantsEntry( S3Prefix=s3://amzn-s3-demo-bucket/prefix1/, Permission=READ, ApplicationArn=ALL ) ])