AWS Glue Studio を通してノートブックをスタートすると、ほんの数秒後にデータを調査し、ジョブスクリプトの開発を開始できるように、すべての設定ステップが実行されます。
以下のセクションでは、AWS Glue Studio で ETL ジョブのノートブックを使用するために、ロールを作成し、適切なアクセス許可を付与する方法について説明します。
AWS Glue で定義されたアクションの詳細については、「AWS Glue で定義されたアクション」を参照してください。
IAM ロールに対するアクセス許可の付与
ノートブックを使用するには、AWS Glue Studio のセットアップが事前に必要です。
AWS Glue でノートブックを使用するには、ロールに次のものが必要です。
-
sts:AssumeRole
アクションに対する AWS Glue との信頼関係。タグ付けが必要な場合はsts:TagSession
。 -
ノートブック、AWS Glue、インタラクティブセッションのすべての許可を含む IAM ポリシー。
-
PassRole の IAM ポリシー (ロールがノートブックからインタラクティブセッションに渡されるようにする必要があるため)。
例えば、新しいロールを作成するときに、AWSGlueConsoleFullAccessRole
などの標準の AWS 管理ポリシーをロールに追加して、ノートブックのオペレーション用と IAM PassRole ポリシー用にそれぞれ新しいポリシーを追加できます。
AWS Glue との信頼関係に必要なアクション
ノートブックセッションを開始する際に、ノートブックに渡されるロールの信頼関係に sts:AssumeRole
を追加する必要があります。セッションにタグが含まれている場合は、sts:TagSession
アクションも渡す必要があります。これらのアクションがないと、ノートブックセッションを開始できません。
例:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "glue.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
ノートブックの IAM 許可を含むポリシー
次のサンプルポリシーで、ノートブックに必要な AWS IAM 権限について説明します。新しいロールを作成する場合は、以下を含むポリシーを作成します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"glue:StartNotebook",
"glue:TerminateNotebook",
"glue:GlueNotebookRefreshCredentials",
"glue:DeregisterDataPreview",
"glue:GetNotebookInstanceStatus",
"glue:GlueNotebookAuthorize"
],
"Resource": "*"
}
]
}
次の IAM ポリシーを使用して、特定のリソースへのアクセスを許可できます。
-
AwsGlueSessionUserRestrictedNotebookServiceRole: セッションを除くすべての AWS Glue リソースへのフルアクセス権限を提供します。ユーザーが、ユーザーに関連付けられているノートブックセッションのみを作成して使用できるようにします。このポリシーには、AWS Glue が他の AWS サービスで AWS Glue リソースを管理するために必要な他のアクセス許可も含まれています。
-
AwsGlueSessionUserRestrictedNotebookPolicy: ユーザー自身に関連付けられているノートブックセッションのみを作成および使用できるようにするアクセス許可を提供します。このポリシーには、ユーザーが制限付き AWS Glue セッションロールを渡すことを明示的に許可するアクセス許可も含まれます。
ロールを渡すための IAM ポリシー
ロールを使用してノートブックを作成すると、そのロールがインタラクティブセッションに渡され、その両方で同じロールを使用できるようになります。このように、iam:PassRole
のアクセス許可がロールのポリシーの一部として必要です。
次の例を使用して、ロール用の新しいポリシーを作成します。アカウント番号とロール名を自分のものに置き換えます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::
090000000210
:role/<role_name
>" } ] }