Amazon Web Services ブログ
AWS Snowball Edge での AWS Identity and Access Management
お客様の多くは、安全なデータ転送とエッジコンピューティングアプリケーションのために AWS Snowball Edge デバイスを使用しています。最近、AWS は Snowball Edge での AWS Identity and Access Management (IAM) のサポートを発表しました。Snowball Edge に IAM を導入する前まで、IT 管理者はファイルをコピーしたり、コンピューティングワークロードを実行したりするユーザー全員と、単一のアクセスキー/シークレットキーの組み合わせを共有していました。このアクセス方法は、個々のサービスを制御できるほどの詳細度と柔軟性を持ち合わせていませんでした。IAM では、ユーザーが実行できるアクションを制御することにより、Snowball Edge デバイスで実行されている AWS サービスおよびリソースへのアクセスを安全に管理できます。IAM を使用すれば、デバイスユーザーがアクションを実行するために使用するデバイス上のどの AWS リソースも管理することができます。このブログでは、Snowball Edge での IAM 機能を探索し、いくつかの実用的な例を示しています。
概要
Snowball Edge を使用すれば、インターネットへの接続が選択肢にない場所でも、AWS クラウドのストレージとコンピューティングパワーにローカルで費用対効果の高い方法でアクセスできます。オンプレミスのデータセンターと Amazon Simple Storage Service (Amazon S3) の間で数百テラバイトまたはペタバイトのデータを転送できます。さらに、Snowball Edge は特定の Amazon EC2 インスタンスタイプと AWS Lambda 関数を実行する機能を提供するため、オンプレミスまたはクラウドで開発されたアプリケーションを同じデバイスにデプロイできます。Snowball Edge の一般的な使用例には、データ移行、データ転送、データ分析、画像照合、IoT センサーストリームキャプチャ、および機械学習推論が含まれます。
Snowball Edge は、顧客データの安全性を確保するために複数の暗号化レイヤーを採用しています。デバイスは輸送中にもロックされ、一意のロック解除コードとマニフェストファイルを使用して、お客様のみがロック解除を行うことができます。デバイスのロックを解除すると、アクセスキー/シークレットキーなどの一連の認証情報をデバイスから取得できます。これらの認証情報は、デバイス上のサービスへのアクセスを有効にするために使用されます。Snowball Edge に IAM が導入されたことで、お客様はエッジでより詳細なアクセス制御を必要とする複雑なワークフローをデプロイできるようになりました。
開始方法
まず、Snowball Edge デバイスのロックを解除してから、IAM を使用して詳細なアクセス制御を適用する必要があります。IAM を使用すれば、ユーザーが実行できるアクションと、ユーザーがアクセスできる AWS リソースを、AWS クラウドと同じように制御できます。AWS OpsHub (OpsHub)、AWS コマンドラインインターフェイス (AWS CLI)、または AWS Software Development Kit (SDK) を使用してポリシーを作成し、デバイスに適用できます。
OpsHub (Windows または Mac ワークステーションにダウンロードしてインストールできるアプリケーション) を使用すると、Snowball デバイスを管理するためのグラフィカルユーザーインターフェイスを利用できます。AWS OpsHub を数回クリックするだけで、次のことが可能になります。
- Snow Family デバイスのロックを解除して構成する
- Snow デバイスに移行するデータをドラッグアンドドロップする
- アプリケーションを起動する
- Snow Family デバイスのメトリックを監視する
- IAM ユーザー、ロール、ポリシーを構成する
OpsHub の詳細についてご興味がある場合は、AWS OpsHub のドキュメントをご覧になり、次の AWS OpsHub デモ動画をご覧ください。
次の図では、Snowball Edge で利用可能な AWS 機能と、IAM ユーザー、ポリシー、およびロールがどのように適用されるかを示しています。
主な違いの 1 つは、Snowball Edge で作成された IAM ユーザー、ロール、またはポリシー (あるいはその両方) が Snowball Edge デバイスに対してのみローカルであり、AWS クラウドに保持されないことです。同様に、VPC で作成されたユーザー、グループ、ロール、またはポリシーを Snowball Edge デバイスに適用することはできません。IAM 認証情報で Snowball Edge にアクセスするには、以下が必要です。
- ローカルネットワークに接続されているロック解除された Snow Family デバイス
- AWS OpsHub、AWS CLI、または AWS SDK
- 管理者によって提供されたユーザーの認証情報ファイル
Snowball Edge の IAM を使用すれば、次のことを実行できます。
- Snowball Edge デバイスにログインするための AWS ユーザーを作成して管理する
- アクセス許可を使用して、Snowball Edge デバイス上の AWS リソースへのユーザーアクセスを許可および拒否する
- ストレージと EC2 リソースへのアクセスを制御する詳細なポリシーを備えている
- バケットとオブジェクトへのアクセスを有効にする、または制限するポリシーを設定する
- EC2 インスタンスにアクセス許可を設定する
- EC2 インスタンスなどのプリンシパルを指定して、データにアクセスできるようにする
- AWS リソースに短時間アクセスするための一時的なセキュリティ認証情報を提供する
AWS Snowball Edge でローカルに IAM を使用する
リモートセンサーデバイスからのデータ収集、データ処理、およびデータ集約に Snowball Edge が使用されているシナリオを見てみましょう。センサーは、Snowball Edge を使用して、S3 オブジェクトとして着信 S3 バケットまたはプレフィックス、あるいはその両方にデータを転送し、分類後に別の S3 プレフィックスに移動させます。その後、エンドユーザーは移動されたファイル (S3 オブジェクト)をダウンロードすることができます。このシナリオでは、組織は次のようにさまざまな役割によって実行される多様な運用機能を分離したいと考えています。
- IAM ポリシーまたはロールを使用して、S3 オブジェクトを分類し、別の S3 プレフィックスへの移動を許可する
- EC2 で IAM ポリシーまたはロールを使用して、S3 オブジェクトで処理タスクを実行する
- 分類された S3 オブジェクトのみを読み取ることができるように一部のユーザーを制限する別の IAM ロールを使用する
ID ベースポリシーの例をいくつか見てみましょう。IT 管理者は、これらのポリシーを IAM ID (ユーザーとロール) に添付して、Snowball Edge リソースでローカルに操作を実行するアクセス許可を付与できます。
特定のバケットへの読み取りと書き込みのアクセスを許可するには、次の IAM ポリシーが必要です。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ListObjectsInBucket",
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::bucket-name"
},
{
"Sid": "AllObjectActions",
"Effect": "Allow",
"Action": "s3:*Object",
"Resource": "arn:aws:s3:::bucket-name/*"
}
]
}
特定のバケットへのリスト操作のみを許可し、それ以外はすべて拒否する方法に関する例を次に示します。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenyObjectActions",
"Effect": "Deny",
"Action": "s3:*",
"Resource": "*"
},
{
"Sid": "ListObjectsInBucket",
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::bucket-name"
}
]
}
アクセスをリストオブジェクトのみに制限する、オブジェクトを追加する、または特定のバケットからオブジェクトを取得する場合は、次のポリシーを使用します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:List*"
],
"Resource": "arn:aws:s3:::examplebucket/*"
}
]
}
EC2 が S3 オブジェクトの処理を実行できるようにする必要がある場合は、Snowball Edge で実行されている EC2 インスタンスへのフルアクセスを許可するポリシーを設定する必要があります。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:*",
"Resource": "*"
}
]
}
ここで、Amazon EC2 インスタンスの開始と停止へのアクセスのみを許可するポリシーが必要な場合は、次のポリシーを指定します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:StartInstances",
"ec2:StopInstances"
],
"Resource": "*"
}
]
}
AWS リソースにアクセスするための一時的なセキュリティ認証情報を設定する場合は、信頼ポリシーを指定して設定します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": [
"AWS-account-ID" or "Principal ID"
]
},
"Action": [
"sts:AssumeRole"
]
}
]
}
IAM ポリシーの例を使用すれば、ポリシー定義を簡単に変更し、組織のニーズに合わせてアクセス許可をさらに制限または拡張できます。
この機能は、Snowball Edge がサポートされている AWS リージョンで、追加費用なしで利用できます。
まとめ
この記事では、Snowball Edge での IAM について説明し、S3 バケットと EC2 インスタンスへの詳細なアクセスを実装するためのサンプルポリシーを確認しました。IAM ユーザー、ロール、およびポリシーを使用して、Snowball Edge で実行されているサービスとリソースへのアクセスを制御および適用する柔軟性が向上しました。Snowball Edge で IAM を使用する経験は、AWS クラウドで IAM を使用する場合に似ています。OpsHub を使用し、使いやすいグラフィカルユーザーインターフェイスを介して Snow Family デバイスの IAM を管理することもできます。
Snowball Edge で詳細を確認して IAM を使用するには、次のリンクを確認してください。
- ブログ: AWS Snowball Edge の更新 – さらに高速なハードウェア、OpsHub GUI、IAM、および AWS Systems Manager
- AWS Snowball Edge のリソースページ
- AWS Snowball Edge のドキュメント
- IAM の仕組みを理解する
- Snow Family 向け AWS OpsHub を使用して Snowball デバイスを管理する
- AWS Snowball コンソール
AWS Snowball Edge での AWS Identity and Access Management についてお読みいただきありがとうございます。ご質問がおありの場合は、以下のコメント欄からお知らせください。