未解決
1 Rookie
•
35 メッセージ
1
1032
【ECS解説第8回】ECS3.5の新しい機能
皆さん、こんにちは。
昨年ご紹介したECS3.6はオブジェクトストレージとしては初のNVMe SSDを搭載するオールフラッシュのEXF900をサポートするために必要な機能を提供することをフォーカスしていました。NVMeのサポートのみならず、オールフラッシュSSDの特性を十分に生かすための新しいアーキテクチャのサポートという製品ラインナップの強化における重要なリリースでした。
実はここまでご紹介する機会のなかったメジャーリリース一つ前のECS3.5は、お客様のご利用において重要な機能を実装しています。今回はその機能をご紹介したいと思います。
ECS3.5の主な追加機能は以下のようになります。
- アクセス機能の拡張
- IP V6対応
- S3 IAMサポート
- Hadoop /S3Aプロトコルでの相互接続
- オブジェクトタギング
- 保守性向上のための機能
- ドライブ交換支援機能追加
- ユーザーによるドライブ交換のサポート
- 性能拡張のための機能
- SSDメタデータキャッシュ
- 16TBディスクサポート
「IP V6」対応については皆様もご存知のとおり、国内でも学術系で求められるケースが多く、海外においても政府系案件などで必要とされております。今後、コンテナ化の流れで物理サーバー導入の自動化が進めるうえで、IPv6のようにハードウェアに一意にアドレスが割り当てられることが求められてくるものと考えられます。IPv6環境でデータセンターを構築されるお客様にご活用いただける機能と期待しております。
「S3 IAM」の機能についてAmazonをご利用の方は、ユーザー認証の仕組みとしてご承知のことと思います。ECSはオブジェクトストレージですので、IAMの認証はS3のアクセス認証に用いられますが、S3 IAMで利用されるアクセス管理機能を広くサポートすることができるようになりました。
「Hadoop/S3A」に関しては以前より機能的に実装しておりましたが、Hadoopに並んでS3Aを用いることができるデータ解析ツールとの相互接続検証を進め順次サポートアナウンスを公式にリリースいただく状況になりました。Splunk様やVertica Systems様、Dremio様の各製品との認証もいただくようになりましたが、積極的に認証を進めてきた結果と言え、今後も主要ベンダーの認証をいただく活動を継続してまいります。
「オブジェクトタギング」はオブジェクトファイルに付与できるメタデータの一つですが、オブジェクトタギングは付与するオブジェクトファイルのバージョンを変更しないという特性があります。S3の従来のメタデータがオブジェクトファイルのバージョンをアップデートするため、バージョニングをイネーブルにしているバケットなどでは、既存のオブジェクトファイルにメタデータを付与すると、新しいバージョンのオブジェクトファイルが作成されることになります。
また、IAM ポリシーを使ってオブジェクトに付与されたオブジェクトタグを見て、アクセスを許可するなどオブジェクトの管理を緻密にコントロールすることにも利用できます。
「ドライブ交換支援機能」は、ECSの各ノードに搭載のディスク交換・追加にあたって、これまで弊社のCSエンジニアがお客様サイトをご訪問してディスク交換や挿入をさせていただくことを前提としておりました。この追加機能にてディスク状況並びに交換のためのメンテナンスモードへ移行する機能を提供し、お客様のストレージ管理者ご自身でディスク交換等ができるようにいたしました。
「SSDメタデータキャッシュ」はオブジェクトストレージとして保管するオブジェクトファイルに付与し、管理等に使用する多様なメタデータを一時的にキャッシュし、オブジェクトファイルのI/Oを高速化するためのSSDを追加し、利用することができる機能をサポートしました。これにより1MB以下のサイズのオブジェクトファイルのI/O性能がかなり向上いたします。
「16TBディスクサポート」は、現在販売させていただいているEXシリーズすべてが新たに16TBディスクをサポートすることでシステム構成の最大容量を大きく向上させることができようになりました。
今回のブログでは「S3 IAM」の機能を取り上げて紹介したいと思います。
IAM (Identify and Access Management)は、Amazon AWSのサイトでは「IAM を使用して、リソースを使用するために認証 (サインイン) され、許可された (アクセス許可を持つ) ユーザーを制御します。」と記載されています。
(参照:https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/introduction.html)
つまり、IAMにはアクセスユーザーの認証機能とどのようなアクセスを許可するか管理・コントロールする機能があるということになります。ECSはS3プロトコルでのアクセス時にIAMユーザーによるアクセスであれば、IAMの機能で定義されたポリシーに基づいて、S3の様々なサービスやオブジェクトへのアクセスをコントロールすることができます。
IAM機能には以下の管理機能が実装されています。
- アカウント管理
- アクセス管理
- IDフェデレーション
- セキュアトークンサービス(STS)
具体的にECS v3.5は下記のようなS3 IAMアクセスコントロールの機能をサポートしています。
- IAMによるユーザーベースのポリシーを設定する
- S3アクセスによる操作の権限だけでなく、インラインポリシーによってアクセスするIPの制限などを指定できるため、S3固有のオブジェクトリソースへのセキュアなアクセスをより強力にコントロールできる
- 設定対象:IAMユーザー・IAMグループ・IAM Roleにポリシーを関連付ける
- アクセス制御:どのリソースに、どのような操作を許可する(しない)
- IAM ユーザーにIAM機能(自分のリソースへのIAMポリシー)を有効にする
- S3プロトコルのみ(マルチプロトコルは非サポート)
- Bucketに対してCASおよびファイルシステムアクセスプロトコル(NFS/HDFS)をイネーブルにできない
- S3 IAMユーザーとS3 レガシーアクセス制御のユーザーの混在が可能
- S3レガシーアクセスにおいてパーミッションを許可すればIAMユーザーもレガシーアクセス制御のユーザーもいずれのユーザーが所有するBucketにアクセス可能にすることができる。既存のS3レガシーアクセスユーザーのBucketはユーザーが作成するだけでなく管理者が作成し、オーナーをユーザーに設定することも可能ですが、S3 IAMユーザーのBucketはS3 IAMユーザーだけが作成することができ、オーナーを変更することができません。
今後はS3アクセスをどうすればよいのでしょうか。既存のS3アクセスユーザー(S3レガシーアクセスユーザー)は使えなくなるのでしょうか。ECSでは両方を継続的に使用できるようにします。というのは以下の一覧のようにそれぞれの特性とECSの持つ特長をサポートするためには両方のアクセスユーザーが必要なのです。
機能 |
S3レガシー |
S3 IAM |
アクセスユーザー管理 |
Namespaceに所属 |
Namespaceに所属かつ複数のIAMグループに所属 |
AD/LDAP連携 |
AD/LDAP連携でアクセス |
NA |
セキュアトークンサービス(STS) |
NA |
利用可。IAMアクセスユーザーより一定期間を指定した認証情報(トークン、Credential)を発行し、トークン所有者に一定のアクセス権を与える |
アクセスポリシー |
設定可(デフォルト-アクセス可能) |
アクセスポリシー付与が必要 |
アクセスキー |
ユーザーIDを使用 |
ユーザーIDとは別にアクセスキーを発行 |
マルチプロトコル |
オブジェクト:S3/Swift/ATMOS/CAS ファイル:HDFS/NFS |
S3のみ |
実際にS3 IAMユーザーを作成するところからご覧に入れたいと思います。
V3.5からポータルUIの左側にあるメニューパン(図1)に「Identity and Access (S3)」というメニューが追加されました。ここをクリックすると下図のようにIAMのための設定画面が表示されます。この画面ではswiftgrp1 というNamespace(テナント)に属するs3testsiamというユーザー情報が表示されています。
図1
IAMユーザーを作成するとGUIでも表示されますが、CSVファイル形式でAccess Key IDとAccess Secret Keyのリストが生成されます。(下表)
Access key ID |
Access Secret key |
AKIA6FFA66FA2C48A0C4 |
ekX5CZ+C6cmYRtGs3rmsTMj0QFBRj1LH7Ph8VfKF |
IAMユーザーはECSの既存のS3と違って、Amazon S3と同じようにユーザーIDとは異なるシステムが生成するAccess Key IDを使ってアクセス認証を行います。
この状態でユーザーを作ったばかりだと、いかなるポリシーも設定されていないのでアクセスができません。(ポリシーがないとAccess Denyになります)
事前に作成されているポリシーとして(Default Policy)
- ECSDenyAll
- ECSS3FullAccess
- ECSS3ReadOnlyAccess
- IAMFullAccess
- IAMReadOnlyAccess
上図ではECSDenyAllを選択して付与してみました。当然、アクセスできないはずですので確認してみました。
図3
図4
アクセスが拒否されました。代わって、ECSS3FullAccessを設定してみました(図5)。
図5
同じようにS3 Browserでアクセスすると、アクセスが可能になり、Bucketを作成することができるようになりました。
図6
このIAMアカウントで作成したBucketに従来のS3ユーザーがアクセスできるようにするには、ACL設定を行えば可能になります。
図7
Bucketの一覧からActionsでEdit ACLを選択して、Usernameを入力Permissionを設定、SaveするとBucketへのアクセス権を付与することができます。
図8
この状態でアクセス権を付与したs3testsuserでS3Browserを使ってアクセスする際にはもう一つ作業が必要です。下記の作業でこのBucketへの読み書きができるようになります。
図9
S3 IAMユーザーの設定を一通りご紹介しましたが、まだまだメリットをお伝えするには至っておりません。だいぶ紙面を尽くしてしまいましたので、今後の記事でご紹介したく思います。
今回、ここまでお付き合いいただきありがとうございます。
ぜひ、来月次回もお読みください。
杉本 直之
デルテクノロジーズ株式会社
UDS事業本部SE部