Amazon QuickSight に S3 バケットへのアクセスを拒否ポリシーで許可するにはどうすればよいですか?

最終更新日: 2020 年 9 月 18 日

Amazon Simple Storage Service (Amazon S3) バケットのポリシーで Amazon QuickSight からのアクセスが許可されていることを確認する方法を教えてください。

簡単な説明

Amazon S3 バケットが拒否ポリシーを使用している場合、そのポリシーは Amazon QuickSight コンソールで指定した S3 アクセス許可をオーバーライドします。Amazon QuickSight が S3 バケットにアクセスできるようにするには、Amazon QuickSight サービスロール (aws-quicksight-service-role-v0) を拒否ポリシーの例外として追加します。

解決方法

1.    Amazon QuickSight が S3 バケットにアクセスする許可を持っていることを確認してください。

2.    AWS コマンドラインインターフェイス (CLI) か、AWS Identity and Access Management (IAM) の API を使用して、aws-quicksight-service-role-v0 のロールの一意の ID を取得します。ID は各 Amazon QuickSight アカウントに固有です。以下はその例です。

aws iam get-role --role-name aws-quicksight-service-role-v0 --query 'Role.RoleId' --output json 

"AROAEXAMPLEID"

注意: AWS CLI コマンドの実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください

3.    Amazon S3 コンソールを開きます。

4.    Amazon QuickSight でアクセスするバケットを選択します。

5.    [Permissions] (アクセス許可) ビューを選択します。

6.    [Bucket Policy] を選択します。

7.    この例のようなバケットポリシーを入力します。AROAEXAMPLEID を一意の ID に置き換えます。IAM ユーザーに例外を追加したい場合、AIDAEXAMPLEUSERIDIAM ユーザーの一意の ID で置き換えます。 IAMユーザーポリシーには許可ステートメント ( S3バケット用) も含める必要があります。以下はその例です。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::examplebucketname",
        "arn:aws:s3:::examplebucketname/*"
      ],
      "Condition": {
        "StringNotLike": {
          "aws:userid": [
            "AROAEXAMPLEID:*",
            "AIDAEXAMPLEUSERID"
          ]
        }
      }
    }
  ]
}

この拒否ポリシーは Amazon QuickSight サービスロールと IAM ユーザーに例外を追加します。

注意: Amazon QuickSight サービスロールと IAM ユーザーを削除すると、バケットからロックアウトされます。この問題を解決するには、AWS アカウントのルートユーザーとしてログインしてから、delete-bucket-policy コマンドを使用してバケットポリシーを削除します。


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


請求に関するサポートまたは技術的なサポートが必要ですか?