ユーザーに Amazon S3 コンソールのアクセスを特定のバケットのみに付与する方法は?

最終更新日: 2019 年 6 月 20 日

ユーザーの Amazon Simple Storage Service (Amazon S3) コンソールのバケットへのアクセス権限を付与したいと思います。ただし、そのユーザーにアカウントのほかのバケットを見せたくありません。ユーザーのコンソールアクセスを特定のバケットにのみ制限するには? 

簡単な説明

ユーザーの Amazon S3 コンソールアクセスを特定のバケットにのみ制限するには、ユーザーの AWS Identity and Access Management (IAM) の権限で、次を変更します。

  1. s3:ListAllMyBuckets アクションへの権限を削除します。
  2. s3:ListBucket のみへの権限を、ユーザーにアクセスさせたいバケットにのみ追加します。

警告: これらのアクセス許可を変更した後、ユーザーはメインの Amazon S3 コンソールにアクセスしたときに、アクセスが拒否されます。メインコンソールのリンクは次の例のようになります。

https://s3.console.aws.amazon.com/s3/home

代わりに、ユーザーはバケットへのダイレクトコンソールリンクを使用して次のように、バケットにアクセスする必要があります。 

https://s3.console.aws.amazon.com/s3/buckets/awsexamplebucket/

解決方法

コンソールのアクセス権限に対する IAM 権限を特区亭のバケットにのみ更新するためには、以下の手順に従ってください。

1.    IAM コンソールを開きます。

2.    コンソールから、特定のバケットにのみアクセスさせる IAM ユーザーまたはロールを開きます。

3.    IAM ユーザーまたはロールの [Permissions] タブで各ポリシーを展開し、その JSON ポリシードキュメントを表示します。

4.    JSON ポリシードキュメントでは、s3:ListAllMyBuckets アクション (すべての S3 アクション) または s3:* アクションにユーザー権限に付与するポリシーを検索します。

5.    s3:ListAllMyBuckets アクションに対する権限を削除するためにポリシーを変更します。次に、コンソールからユーザーにアクセスさせたいバケットに対してのみ s 3:ListBucket に権限を追加します。

たとえば、次のポリシーでは、ユーザーがawsexamplebuckets 3:ListBuckets3:PutObject、および s 3:GetObject アクションを実行することを許可します。

{
   "Version":"2012-10-17",
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "s3:ListBucket"
         ],
         "Resource":"arn:aws:s3:::awsexamplebucket"
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:PutObject",
            "s3:GetObject"
         ],
         "Resource":"arn:aws:s3:::awsexamplebucket/*"
      }
   ]
}

6.    次のようなバケットへの直接コンソールリンクをユーザーに提供します。

https://s3.console.aws.amazon.com/s3/buckets/awsexamplebucket/

ユーザーはコンソールからバケットをアクセスできる直接リンクを使用する必要があります。

注 : ユーザーがすべてのバケットリストを取得できるようにしたいが、特定のバケットでのみ他の S3 アクションを実行したい場合、 「Example: Allow an IAM user access to one of your buckets」を参照してください。


この記事はお役に立ちましたか?

改善できることはありますか?


さらにサポートが必要な場合