はじめに
Amazon S3は、Amazon Web Servicesが提供するオンラインファイルストレージのウェブサービスです。ウェブを使っていつでも、どこからでも、どんな量のデータも保存、取得することができます。DomoのAmazon S3 AssumeRoleコネクターを使うと、AssumeRole認証によってS3バケットからデータを引き込むことができます。Amazon S3 APIについて詳しくは、製品ページ( http://docs.aws.amazon.com/AmazonS3/…I/Welcome.html )を参照してください。 Amazon S3 AssumeRoleコネクターは「ファイル」コネクターです。つまり、ファイルを取得してDomoに出力します。Data Centerでこれを含むほかのファイルコネクターのページにアクセスするには、ウィンドウ上部のツールバーで [ファイル] をクリックします。 Amazon S3のアカウントには、Data Centerから接続します。このトピックでは、Amazon S3コネクターのユーザーインターフェースに固有のフィールドとメニューについて説明します。DataSetの追加や更新スケジュールの設定、DataSet情報の編集に関する一般的な情報は、「 コネクターを使用してDataSetを追加する 」を参照してください。主な使用事例 | このコネクターは、APIが使用できない状況でフラットファイルを取得するための最善の方法です。 |
主なメトリクス | 該当なし |
社内における主な権限 |
|
平均導入時間 | S3に適切なタイプのファイルがあれば1時間以内 |
使いやすさ(1~10の段階。1が「最も使いやすい」) | 4 |
ベストプラクティス
S3に保存されたデータや、ほかのS3データベースとの関係を理解していると、このコネクターを使用する上で大変役立ちます。必要条件
Amazon S3アカウントに接続してDataSetを作成するには、以下が必要です。- 引き受ける権限のAmazonリソースネーム(ARN)。
- 引き受けた権限のセッションの識別子。信頼ポリシーの設定が必要です。このことについては、以下で説明します。
- サードパーティが顧客のアカウントで権限を引き受けるときに使う一意の識別子。
- データの引き込み元となるAmazon S3バケットの名前。
信頼ポリシーの設定
権限のセッション識別子に対する信頼ポリシーは、以下の通りです。{"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
| IDタイプ | 説明 |
| EXTERNAL_ID: | DOMOによって生成されたID。 |
| ACCOUNT_ID: | 上記のリストから、お住まいの国のアカウントIDを選択してください。 |
{"Effect": "Allow","Principal": {"AWS": " arn:aws:iam::46822464880681:user/myIAMuser123 },"Action": "sts:AssumeRole","Condition": {"StringEquals": {"sts:ExternalId": "010251424122"}}}
Amazon S3バケットに接続する
このセクションでは、Amazon S3 AssumedRoleコネクターページの [認証情報] および [詳細] ペインのオプションについて説明します。このページのほかのペインの項目である [スケジュール設定] や [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] を選択します。
[認証情報]ペイン
このペインには、Amazon S3バケットにアクセスするための認証情報を入力するフィールドがあります。下表では、各フィールドに必要な内容を説明しています。フィールド | 説明 |
|---|---|
Role ARN | 引き受ける権限のAmazonリソースネーム(ARN)を入力します。 |
Role Session Name | 引き受けたロールのセッションに対する識別子を入力します。 |
External ID | サードパーティが顧客のアカウントで権限を引き受けるときに使う一意の識別子を入力します。 |
Bucket | ファイルを取得したいAmazon S3バケットを入力します。 |
Region | ファイルがあるS3バケットのリージョンを選択します。 |
[詳細]ペイン
このペインには、Domoに取得したいファイルを検索し、設定するための様々なメニューがあります。メニュー | 説明 | ||||||
|---|---|---|---|---|---|---|---|
File Type to Import | Domoにインポートしたいファイルのタイプを、CSV、JSON、TSV、TXT、XML、XLS、XLSXから選択します。 | ||||||
Does Your Filename Have an Extension? | ファイル名が、サポートされているファイルタイプの拡張子で終わっている場合には [Yes] を選択します。そうでない場合は [No] を選択します。 | ||||||
How Would You Like to Choose Your Filename? | Domoがファイルを識別する方法を選択します。オプションは以下の通りです。
| ||||||
Enter Complete Filepath | 希望するファイルの完全パスを入力します。 | ||||||
List of Files from Amazon S3 Bucket | 取得したいファイルを選択します。 | ||||||
Prefix(オプション) | 結果にフィルターを適用するためのプレフィックスを入力します。プレフィックスにより、指定したプレフィックスで始まるキーのみに結果が絞り込まれます。 | ||||||
File Name | インポートしたいファイル名を入力します。ファイルパスはあってもなくても構いません。例: folder_name/file_name | ||||||
File Name Match Type | 取得したいファイルの名前が、 [File Name] で入力したテキストで始まる名前なのか、それとも入力したテキストを含む名前なのかを指定します。 | ||||||
File Compression Type | 取得するファイルの圧縮タイプを選択します。ファイルが圧縮されていない場合は、 [None] を選択します。 | ||||||
Select a File from ZIP Archive | DomoにインポートするZIPファイルを選択します。 | ||||||
Add FileName Column | 出力データに「BATCH_FILE_NAME」列を追加する場合は、 [Yes] を選択します。追加しない場合は [No] を選択します。 | ||||||
Select the Delimiting Character | 取得したいCSVファイルで使用されている区切り文字を選択します。区切り文字がリストにない場合は、 [Other] を選択します。 | ||||||
Specify Your Delimiter(条件付き) | CSVテキストを区切る文字を入力します。 | ||||||
Quote Character | 取得したいCSVファイルを解析する引用文字を選択します。CSVの標準は二重引用符(“)です。希望する引用文字がリストにない場合は、 [Other] を選択します。 | ||||||
Custom Quote Character(条件付き) | 希望する引用文字を入力します。 | ||||||
Escape Character | 取得したいCSVファイルを解析するエスケープ文字を選択します。CSVの標準はバックスラッシュ(\)です。希望するエスケープ文字がリストにない場合は、 [Other] を選択します。 | ||||||
Custom Escape Character(条件付き) | 希望するエスケープ文字を入力します。 | ||||||
Are Headers Present in CSV File? | CSVファイルのヘッダーがある場合は [Yes] を、ない場合は [No] を選択します。 | ||||||
Enter Your Header Tag(条件付き) | JSONファイルのヘッダーのタグを入力します。 | ||||||
Does Your JSON Text Require a Line Reader? | JSONファイルのテキストで、複数の行を読み込む必要があるかを指定します。 | ||||||
Should the Backslash be Escaped? | JSONファイルのテキストに、エスケープする必要のあるバックスラッシュが含まれているかを指定します。 | ||||||
Enter your Sublist to Flatten(オプション) | データで平面化したいカンマ区切りのサブリストを入力します。 | ||||||
Enter XPath Expression(オプション) | XPath式を入力します。 | ||||||
Do You Require Attributes in Data? | XMLデータの一部として属性値を必要とするかを指定します。 | ||||||
Enter Your Data Tag(オプション) | JSONまたはXMLファイルのデータのタグを入力します。 | ||||||
Enter Fields to Exclude(オプション) | JSON/XMLのインポートで除外したいフィールドを、カンマで区切ったリストとして指定します。 | ||||||
Sheet Name(オプション) | 指定したExcelスプレッドシートからインポートするシート名を入力します。名前に誤ってスペースが含まれていないか確認してください。フィールドが空白の場合は、ワークブックの最初のシートが使用されます。 | ||||||
File Password(条件付き) | Excelファイルがパスワードで保護されている場合は、ファイルのパスワードを入力します。 | ||||||
Layout | Excelファイルのレイアウトを選択します。使用可能なオプションは次の通りです。
| ||||||
Mode | Excelデータのセル範囲の決定方法を選択します。 [Auto] を選択すると、範囲が自動的に決定されます。 [Manual] を選択すると、列ヘッダーとデータ範囲を手動で入力するように求められます。 | ||||||
Enable Parsing for Large JSON Files? | 大きなJSONファイルの解析を有効にするかを指定します。 | ||||||
Column Header Range | Excelシートの列ヘッダーの範囲を入力します。例: A2:F8 | ||||||
Row Header Range | Excelシートの行ヘッダーの範囲を入力します。例: A2:A8 | ||||||
Data Range | Excelシートのデータ(ヘッダーなし)セルの範囲を入力します。例: A3:F20 | ||||||
Header Start Row(Advancedのみ)(オプション) | ヘッダー行番号を入力します。番号を入力しない場合、最初の行がヘッダー行とみなされます。 | ||||||
Data Start Row (Advancedのみ)(オプション) | 開始行番号を入力します。番号を入力しない場合、ヘッダー行に続く最初の行が開始行とみなされます。 | ||||||
Footer Rows to Skip (Advancedのみ)(オプション) | インポートから除外する行がファイルの終わりに1つまたは複数ある場合は、スキップする行数を入力します。 | ||||||
Date Format(Advancedのみ)(オプション) | 日付列を変換するために使用する日付の形式を選択します(Excelファイルの場合、セルの日付の形式が優先されます)。 | ||||||
Blank Rows (Advancedのみ)(オプション) | Excelファイルに空白行が見つかった場合に、希望する結果を選択します。 [Skip blank rows] を選択すると、空白行なしで通常通りファイルが処理されます。 [Stop at the first blank row] を選択すると、最初の空白行まですべて取得されます。 | ||||||
Empty Column Headers(Advancedのみ)(オプション) | Excelファイルに空白の列ヘッダーが見つかった場合に、希望する結果を選択します。 [Add blank columns] を選択すると、デフォルトの名前で新しい列が生成されます。 [Stop at the first blank column] を選択すると、空白のヘッダーがある最初の列まですべて取得されます。 |
その他のペイン
スケジュール設定、再試行、更新オプションなど、その他のコネクターインターフェースのセクションの詳細については、「 コネクターを使用してDataSetを追加する 」を参照してください。トラブルシューティング
- S3バケットにファイルが存在しており、コネクターの設定で正しいファイルタイプが指定されていることを確認します。
- コネクターがデータを取得するには、NULL列を削除する 必要があります 。
- データファイル内のエスケープされていない文字は、「インポートを正常に実行できません」エラーを引き起こす可能性があります。DataSetにこのエラーがある場合は、[詳細]セクションの引用文字が正しいか確認してください。