はじめに
Amazon S3 Analytics Assume Roleコネクターを使用することで、Amazon Web Servicesが提供するオンラインファイルストレージのウェブサービスで任意の量のデータをいつでもどこからでも保存、取得することができます。Amazon S3 APIの詳細については、製品ページ( http://docs.aws.amazon.com/AmazonS3/…I/Welcome.html )を参照してください。 Amazon S3コネクターとAmazon S3 Advancedコネクターの機能はほぼ同等です。唯一の違いは、コネクターの [詳細] セクションで指定したプレフィックス文字列で始まる複数のファイルの処理方法です。 Amazon S3 Analyticsコネクターの ストレージクラス分析 を使用することにより、ストレージアクセスパターンを分析し、適切なデータを適切なストレージクラスに移行するタイミングを判断できます。この新しいAmazon S3 Analytics機能は、アクセス頻度の低いSTANDARDストレージをいつSTANDARD_IA(IA:小頻度アクセス)ストレージクラスに移行すべきかを判断できるように、データアクセスパターンを確認します。ストレージクラスの詳細については、「 Amazon S3ストレージクラスを使用する 」を参照してください。 Amazon S3 Analyticsコネクターのアカウントには、Data Centerから接続します。このトピックでは、Amazon S3コネクターのユーザーインターフェースに固有のフィールドとメニューについて説明します。DataSetの追加や更新スケジュールの設定、DataSet情報の編集に関する一般的な情報は、「 コネクターを使用してDataSetを追加する 」で説明しています。| 主な使用事例 | このコネクターは、APIが使用できない状況でフラットファイルを取得するための最善の方法です。 |
| 主なメトリクス | 該当なし |
| 社内における主な権限 |
|
| 平均導入時間 | S3に適切なタイプのファイルがあれば1時間以内 |
| 使いやすさ(1~10の段階。1が「最も使いやすい」) | 4 |
ベストプラクティス
- S3 Analyticsコネクターに保存されたデータや、ほかのS3データベースとの関係を理解していると、このコネクターを使用する上で大変役立ちます。
必要条件
DomoでS3データに接続する前に、IAM Amazonコンソールで適切な許可を有するユーザーを作成する必要があります。 IAM Amazon Consoleでユーザーを設定するには:-
新規ユーザーを追加し、次のオプションを設定します。
-
[Details] ペインで、[Select AWS access type] の [Programmatic Access] のボックスをチェックします。

-
[Permissions] ペインで、[Attach existing policies directly] を選択し、[AmazonS3FullAccess] または [AmazonS3ReadOnlyAccess] のボックスをチェックします。カスタマー管理ポリシーは 使用できません 。

- [Review] ペインで、[Create User] をクリックします。
-
[Details] ペインで、[Select AWS access type] の [Programmatic Access] のボックスをチェックします。
- ユーザーを作成したら、アクセスキーとシークレットキーをコピーし、Domoの [認証情報] ペインで使用します。
信頼ポリシーの設定
権限のセッション識別子に対する信頼ポリシーは、以下の通りです。{"Effect": "Allow",
"Principal": {"AWS": "arn:aws:iam::*accountId*:root"},"Action": "sts:AssumeRole","Condition": {"StringEquals": {"sts:ExternalId": "*customer externalID*"}}}
Domo環境のアカウントIDは、以下の通りです。
- 米国:339405024189
- オーストラリア:010251424122
- ヨーロッパ、中東、アフリカ(IE):687132894031
- 日本:622384692065
- カナダ:710710207408
Amazon S3 Analytics Assumeコネクター アカウントに接続する
このセクションでは、Amazon S3 Analytics Assume Roleコネクターページの[認証情報]および[詳細]ペインのオプションについて説明します。このページのほかのペインの項目である [スケジュール設定] や [DataSetに名前を付け、説明を入力] に関しては、ほとんどのタイプのコネクターで共通しています。詳細については、「 コネクターを使用してDataSetを追加する 」を参照してください。IAM権限を作成する(コンソール)
AWSマネジメントコンソールを使用して、IAMユーザーが引き受けることができる権限を作成できます。例えば、実稼働環境から開発環境を分離する目的で、組織に複数のAWSアカウントが存在するとします。開発アカウントのユーザーが実稼働用アカウントでリソースにアクセスできる権限の作成についての高度な情報は、「 個別の開発用アカウントと本稼働用アカウントを使用したシナリオ例 」を参照してください。 権限を作成するには(コンソール):- AWSマネジメントコンソールにサインインして、IAMコンソール( https://console.aws.amazon.com/iam/ )を開きます。
- コンソールのナビゲーションペインで、[Roles]、[Create role] の順に選択します。
- [AWS account] 権限タイプを選択します。
-
自分のアカウントの権限を作成するには、[This account] を選択します。別のアカウントの権限を作成するには、[Another AWS account] を選択し、リソースへのアクセス権を付与する アカウントID を入力します。
指定されたアカウントの管理者は、この権限を引き受けられる許可を、アカウント内のすべてのIAMユーザーに付与できます。これを実行するには、管理者は、ユーザーまたはグループに
sts:AssumeRoleアクションを許可するポリシーを追加します。そのポリシーは、権限のARNをリソースとして指定する必要があります。 -
自分が管理していないアカウントからユーザーに許可を付与し、そのユーザーがこの権限をプログラム的に引き受ける場合は、[Require external ID] を選択してください。外部IDは、サードパーティアカウントの管理者との間で合意された任意の単語または数字とすることが可能です。このオプションは、正しい
sts:ExternalIDがリクエストに含まれている場合にのみ、ユーザーが権限を引き受けられるようにする条件を信頼ポリシーに自動的に追加します。詳細については、「 AWSリソースへのアクセス権を第三者に付与するときに外部IDを使用する方法 」を参照してください。 重要 このオプションを選択すると、権限へのアクセスは、AWS CLI、Tools for Windows PowerShell、またはAWS APIを介した場合のみに制限されます。これは、AWSコンソールを使用しても、信頼ポリシーにexternalIdの条件が存在する権限への切り替えができないためです。 ただし、こうしたアクセス権は、関連するSDKを使ってスクリプトやアプリケーションを書くことで、プログラム的に作成することが可能です。詳細やサンプルスクリプトについては、AWS Security Blogの「 How to Enable Cross-Account Access to the AWS Management Console 」を参照してください。 - 多要素認証(MFA)でサインインするユーザーに対して権限を制限したい場合は、[Require MFA] を選択します。これにより、権限の信頼ポリシーにMFAサインインをチェックする条件を追加します。権限を引き受けるユーザーは、設定されたMFAデバイスから、ワンタイムパスワードでサインインする必要があります。MFA認証のないユーザーは権限を引き受けることができません。MFAの詳細については、「 AWSでの多要素認証(MFA)の使用 」を参照してください。
- [Next] を選択します。
- IAMには、アカウント内のAWS管理ポリシーとカスタマー管理ポリシーの一覧があります。アクセス許可ポリシーとして使用するポリシーを選択します。または、[Create policy] を選択して新しいブラウザータブを開き、最初から新しいポリシーを作成します。詳細については、「 IAMポリシーの作成 」を参照してください。ポリシーを作成したら、そのタブを閉じて元のタブに戻ります。権限を引き受けるユーザーに付与したいアクセス許可ポリシーの横にあるチェックボックスを選択します。必要な場合は、この時点ではポリシーを選択せず、後で権限にポリシーを追加することもできます。デフォルトでは、権限には何も許可がありません。
- (オプション)許可の境界 を設定します。これは、高度な機能です。[Set permissions boundary] セクションを開き、[Use a permissions boundary to control the maximum role permissions] を選択します。許可の境界に使用するポリシーを選択します。
- [Next] を選択します。
-
[Role name] に、自分の権限名を入力します。権限名は、AWSアカウント内で一意である必要があります。大文字と小文字は識別されません。例えば、名前が
PRODROLEの権限とprodroleの権限を両方とも作成することはできません。ほかのAWSリソースが権限を参照する可能性があるため、作成後に権限名を編集することはできません。 - (オプション)[Description] に、新しい権限の説明を入力します。
- [Step 1: Select trusted entities]、または [Step 2: Add permissions] のセクションで [Edit] を選択し、権限の使用事例と許可を変更します。
- (オプション)タグをキーと値のペアとして追加して、メタデータを権限に追加します。IAMにおけるタグの使用の詳細については、「 IAMリソースのタグ付け 」を参照してください。
- 権限情報を確認し、[Create role] を選択します。
[認証情報]ペイン
Domo Amazon S3 Analytics コネクターはOAuthを使用して接続するため、Domo内で認証情報を入力する必要はありません。[接続] をクリック(またはDomoに既存の Amazon S3 Analyticsコネクター のアカウントがある場合は [アカウントを追加] を選択)すると、 Amazon S3 Analyticsコネクター OAuth画面が開き、 Amazon S3 Analytics のユーザー名とパスワードを入力できます。有効な 認証情報を一度入力しておくと、いつでも同じアカウントを使用して新しい Amazon S3 Analytics DataSetを作成できます。コネクターのアカウントは、Data Centerの [アカウント] タブで管理することができます。このタブについて詳しくは、「 コネクターのユーザーアカウントを管理する 」を参照してください。フィールド | 説明 |
|---|---|
| Role ARN | 引き受ける権限のAmazonリソースネーム(ARN)を入力します。 |
| Session Name | 引き受けた権限のセッションに対する識別子を入力します。 |
| External ID | 生成ボタンをクリックして外部IDを生成し、IAM権限の信頼関係ドキュメントに貼り付けます。 |
| Region | Amazon S3リージョンを入力します。 |
[詳細]ペイン
このペインには、Domoに取得したいファイルを検索し、設定するための様々なメニューがあります。メニュー | 説明 | ||||||
|---|---|---|---|---|---|---|---|
S3 Bucket Region | ファイルがあるS3バケットリージョンを選択します。 | ||||||
File Type to Import | Domoにインポートしたいファイルのタイプを、CSV、JSON、XMLから選択します。 | ||||||
How Would You Like to Choose Your Filename? | Domoがファイルを識別する方法を選択します。オプションは以下の通りです。
| ||||||
Prefix(オプション) | 結果にフィルターを適用するためのプレフィックスを入力します。プレフィックスにより、指定したプレフィックスで始まるキーのみに結果が絞り込まれます。この標準バージョンのコネクターでは、変更された最新のファイルのみがインポートされます。Advancedバージョンのコネクターでは、同じプレフィックスを持つすべてのファイルが取得されます。これは、同じプレフィックスを持つファイルは同じスキーマを使用することを前提としているためです。詳細については、「 Amazon S3 Advancedコネクター 」を参照してください。 | ||||||
Enter Complete Filepath | 使用するファイルの完全パスを入力します。 | ||||||
File Name | インポートしたいファイル名を入力します。ファイルパスはあってもなくても構いません。例: folder_name/file_name | ||||||
File Name Match Type | 取得したいファイルの名前が、 [File Name] で入力したテキストで始まる名前なのか、それとも入力したテキストを含む名前なのかを指定します。 | ||||||
File Compression Type | 取得するファイルの圧縮タイプを選択します。ファイルが圧縮されていない場合は、 [None] を選択します。 | ||||||
Are Headers Present in CSV File? | インポートするCSVファイルにヘッダーがある場合、 [Yes] を選択します。ない場合は、 [No] を選択します。 | ||||||
List of Files | 取得したいファイルを選択します。 | ||||||
Select the Delimiting Character | 取得したいCSVファイルで使用されている区切り文字を選択します。区切り文字がリストにない場合は、 [Other] を選択します。 | ||||||
Quote Character | 取得したいCSVファイルを解析する引用文字を選択します。CSVの標準は二重引用符(“)です。 | ||||||
Escape Character | 取得したいCSVファイルを解析するエスケープ文字を選択します。CSVの標準はバックスラッシュ(\)です。 | ||||||
Enable Parsing for Large JSON Files? | 大きなJSONファイルの解析を有効にするかを指定します。 | ||||||
Does Your JSON Text Require a Line Reader? | JSONファイルのテキストで、複数の行を読み込む必要があるかを指定します。 | ||||||
Should the Backslash be Escaped? | JSONファイルのテキストに、エスケープする必要のあるバックスラッシュが含まれているかを指定します。 | ||||||
Enter Your Data Tag | JSONまたはXMLファイルのデータのタグを入力します。 | ||||||
Enter Fields to Exclude | JSON/XMLのインポートで除外したいフィールドを、カンマで区切ったリストとして指定します。 | ||||||
Enter Your Header Tag | JSONまたはXMLファイルのヘッダーのタグを入力します。 | ||||||
Do You Require Attributes in Data? | XMLデータの一部として属性値を必要とするかを指定します。 | ||||||
Enter XPath Expression | XPath式を入力します。 | ||||||
Is Password Protected? | 取得するファイルがパスワードで保護されている場合は、 [Yes] を選択します。保護されていない場合は、 [No] を選択します。 | ||||||
Header Start Row | 取得するExcelファイルのヘッダー行の番号を入力します。 | ||||||
Data Start Row | 取得するExcelファイルの最初のデータ行の番号を入力します。 | ||||||
Footer | 取得するExcelファイルのフッター行の番号を入力します。 | ||||||
Blank Rows | 空白行が見つかった場合に取るべきアクションを選択します。 [Skip blank rows] を選択すると、空白行がスキップされます。 [Stop at the first blank column] を選択すると、空白行が見つかった列でインポートが停止します。 | ||||||
Empty Column Headers | 空白の列ヘッダーが見つかった場合にどうするかを指定します。 [Add blank columns] を選択した場合、新規の列には列名が自動的に生成されます。 [Stop at the first blank column] を選択した場合、空白のヘッダーが見つかった時点でデータのインポートは停止します。 |
トラブルシューティング
- S3バケットにファイルが存在しており、コネクターの設定で正しいファイルタイプが指定されていることを確認します。
- コネクターが正常にデータを取得できるよう、NULL列を削除しておく 必要があります。
- CSVファイルをインポートしようとした際に「Failed to Import Successfully」というエラーが発生した場合は、[Quote Character] メニューのオプションを [No Quote Character] に変更することによって回避できることがあります。