AWS リソースへの認証
CelerData は、AWS リソースと統合するために、インスタンスプロファイルベースの認証、ロールベースの認証、IAM ユーザーベースの認証の 3 つの認証方法をサポートしています。このトピックでは、これらの認証方法を使用して AWS 資格情報を設定する方法について説明します。
認証方法
インスタンスプロファイルベースの認証
インスタンスプロファイルベースの認証方法では、AWS リソースに対して直接 CelerData クラスターに権限を付与できます。理論的には、クラスターにログインできるクラスター ユーザーは、設定したアクセス ポリシーに従って AWS リソース上で許可されたアクションを実行できます。このユースケースの典型的なシナリオは、クラスター内の複数のクラスター ユーザー間で AWS リソース アクセス制御が不要な場合です。この認証方法は、同じクラスター内での分離が不要であることを意味します。
ただし、この認証方法は、クラスターにログインできる人がクラスター管理者によって制御されているため、クラスター レベルの安全なアクセス制御ソリューションと見なすことができます。
ロールベースの認証
インスタンスプロファイルベースの認証とは異なり、ロールベースの認証方法では、AWS IAM ロールを引き受けて AWS リソースにアクセスすることをサポートしています。詳細については、ロールの引き受けを参照してください。
IAM ユーザーベースの認証
IAM ユーザーベースの認証方法では、IAM ユーザー資格情報を使用して AWS リソースにアクセスすることをサポートしています。詳細については、IAM ユーザーを参照してください。
準備
まず、CelerData クラスターを正常に起動したことを確認してください。この手順を完了していない場合は、CelerData クラスターの作成を参照してください。
次のステップでは、以下に示すように Data credential に移動して、クラスターのデータ資格情報で参照される IAM ロールの Instance profile ARN を取得し、取得したインスタンスプロファイル ARN に基づいてデータ資格情報ロールの名前を推測します。以下の例では、インスタンスプロファイル ARN は arn:aws:iam::081976408565:instance-profile/byoc_common
であり、データ資格情報ロールの名前が byoc_common
であることを推測できます。
次に、データ資格情報ロールの ARN を取得します。この例では、次の手順を実行します。
-
IAM コンソール にログインします。
-
Roles ページに移動し、検索ボックスに byoc_common と入力してデー タ資格情報ロールを検索します。次に、見つけたデータ資格情報ロールをクリックします。
-
ロールの詳細ページで、データ資格情報ロールの ARN (例:
arn:aws:iam::081976408565:role/byoc-common
) をコピーし、後でアクセスできる場所に保存します。
インスタンスプロファイルベースの認証にはデータ資格情報ロールが必要であり、ロールベースの認証にはデータ資格情報ロールとその ARN が必要です。
3 番目のステップでは、アクセスしたい AWS リソースの種類と CelerData 内の特定の操作シナリオに基づいて IAM ポリシーを作成します。AWS IAM のポリシーは、特定の AWS リソースに対する一連の権限を宣言します。ポリシーを作成した後、IAM ロールまたはユーザーにアタッチする必要があります。このようにして、IAM ロールまたはユーザーは、ポリシーで宣言された権限を割り当てられ、指定された AWS リソースにアクセスできます。
注意
2 番目と 3 番目のステップでこれらの準備を行うには、AWS IAM コンソール にサインインして IAM ユーザーとロールを編集する権限が必要です。
特定の AWS リソースにアクセスするために必要な IAM ポリシーについては、次のセクションを参照してください。
インスタンスプロファイルベースの認証の準備
必要な AWS リソースにアクセスするための IAM ポリシー を CelerData クラスターのデータ資格情報ロール (例: byoc-common
) にアタッチします。
ロールベースの認証の準備
IAM ロールの作成とポリシーのアタッチ
アクセスしたい AWS リソースに応じて、1 つ以上の IAM ロールを作成します。詳細は IAM ロールの作成 を参照してください。次に、必要な AWS リソースにアクセスするための IAM ポリシー を作成した IAM ロールにアタッチします。
例えば、CelerData クラスターが AWS S3 と AWS Glue にアクセスすることを望む場合、この状況では、1 つの IAM ロール (例: s3_assumed_role
) を作成し、AWS S3 にアクセスするためのポリシーと AWS Glue にアクセスするためのポリシーの両方をそのロールにアタッチすることができます。あるいは、2 つの異なる IAM ロール (例: s3_assumed_role
と glue_assumed_role
) を作成し、これらのポリシーをそれぞれのロールにアタッチすることもできます (つまり、AWS S3 にアクセスするためのポリシーを s3_assumed_role
にアタッチし、AWS Glue にアクセスするためのポリシーを glue_assumed_role
にアタッチします)。
作成した IAM ロールは、指定された AWS リソースにアクセスするために CelerData クラスターのデータ資格情報ロール (例: byoc-common
) によって引き受けられます。
このセクションでは、1 つの引き受けロール s3_assumed_role
を作成し、AWS S3 にアクセスするためのポリシーと AWS Glue にアクセスするためのポリシーの両方をそのロールに追加したと仮定しています。
信頼関係の設定
引き受けロールを次のように設定します。
-
AWS IAM コンソール にサインインします。
-
左側のナビゲーションペインで、Access management > Roles を選択します。
-
引き受けロール (
s3_assumed_role
) を見つけて、その名前をクリックします。 -
ロールの詳細ページで、Trust relationships タブをクリックし、Trust relationships タブで Edit trust policy をクリックします。
-
Edit trust policy ページで、既存の JSON ポリシー ドキュメントを削除し、次の IAM ポリシーを貼り付けます。このとき、上記で取得したデータ資格情報ロールの ARN (例:
arn:aws:iam::081976408565:role/byoc-common
) に<data_credential_role_ARN>
を置き換える必要があります。次に、Update policy をクリックします。{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "<data_credential_role_ARN>"
},
"Action": "sts:AssumeRole"
}
]
}異なる AWS リソースにアクセスするために異なる引き受けロールを作成した場合は、他の引き受けロールを設定するために前述の手順を繰り返す必要があります。例えば、AWS S3 と AWS Glue にアクセスするために
s3_assumed_role
とglue_assumed_role
を作成した場合、この状況では、glue_assumed_role
を設定するために前述の手順を繰り返す必要があります。
データ資格情報ロールを次のように設定します。
-
AWS IAM コンソール にサインインします。
-
左側のナビゲーションペインで、Access management > Roles を選択します。
-
データ資格情報ロール (
byoc-common
) を見つけて、その名前をクリックします。 -
表示されるページの Permissions policies セクションで、Add permissions をクリックし、Create inline policy を選択します。
-
Specify permissions ステップで、JSON タブをクリックし、既存の JSON ポリシー ドキュメントを削除し、次の IAM ポリシーを貼り付けます。このとき、引き受けロール
s3_assumed_role
の ARN に<s3_assumed_role_ARN>
を置き換える必要があります。次に、Review policy をクリックします。{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["sts:AssumeRole"],
"Resource": ["<s3_assumed_role_ARN>"]
}
]
}異なる AWS リソースにアクセスするために異なる引き受けロールを作成した場合は、前述の IAM ポリシーの Resource 要素にこれらの引き受けロールの ARN をすべて記入し、カンマ (,) で区切る必要があります。例えば、AWS S3 と AWS Glue にアクセスするために
s3_assumed_role
とglue_assumed_role
を作成した場合、この状況では、Resource 要素を次の形式で記入する必要があります:"<s3_assumed_role_ARN>","<glue_assumed_role_ARN>"
。 -
Review Policy ステップで、ポリシー名を入力し、Create policy をクリックします。