拒否ポリシーを使用して Amazon QuickSight に S3 バケットへのアクセスを許可する方法を教えてください。

所要時間1分
0

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

簡単な説明

Amazon S3 バケットが Deny ポリシーを使用している場合、そのポリシーは Amazon QuickSight コンソールで指定した S3 アクセス権限よりも優先されます。Amazon QuickSight が S3 バケットにアクセスできるようにするには、Amazon QuickSight サービスロール (aws-quicksight-service-role-v0) を Deny ポリシーの例外として追加します。

解決策

1.    Amazon QuickSight に S3 バケットにアクセスする権限があることを確認します。

2.    AWS コマンドラインインターフェイス (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.    [バケットポリシー] を選択します。

7.    この例のようなバケットポリシーを入力します。AROAEXAMPLEID は固有の ID に置き換えてください。IAM ユーザーに例外を追加するには、AIDAEXAMPLEUSERIDIAM ユーザーの固有の ID に置き換えます。IAM ユーザーポリシーには、S3 バケットの Allow ステートメントも含まれている必要があります。例:

{
  "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"
          ]
        }
      }
    }
  ]
}

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

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

関連情報

Amazon S3 バケットアクセスを特定の IAM ロールに制限する方法

AWS公式
AWS公式更新しました 8ヶ月前
コメントはありません