メインコンテンツまでスキップ

ステップ 2: 監査ログ配信の認証情報を設定する

この記事では、監査ログ配信用の IAM サービスを設定する方法について説明します。 ワークスペースごとに異なる資格情報を使用するには、ワークスペースまたはワークスペースのグループごとにこの記事の手順を繰り返します。

注記

異なるS3バケット名を使用するには、別のIAMロールを作成する必要があります。

IAMロールを作成する

  1. 管理者権限を持つユーザーとしてAWSコンソールにログインし、 IAM サービスに移動します。
  2. サイドバーの「 ロール 」タブをクリックします。
  3. ロールの作成 」をクリックします。
    1. 信頼できるエンティティの種類の選択 」で、「 AWSサービス 」を選択します。
    2. [ユースケース ] で [ EC2 ] を選択します。
    3. [次へ] ボタンをクリックします。
    4. [次へ] ボタンをクリックします。
    5. ロール名 」フィールドにロール名を入力します。
    6. ロールの作成 」をクリックします。ロールのリストが表示されます。

インラインポリシーの作成

  1. ロールのリストで、作成したロールをクリックします。

  2. インラインポリシーを追加します。

    1. [アクセス許可] タブで、[ アクセス許可の追加 ] をクリックし、[ インライン ポリシーの作成 ] をクリックします。

    2. ポリシーエディターで、「 JSON 」タブをクリックします。

    3. このアクセスポリシーをコピーして変更します。ポリシー内の以下の値を独自の設定値に置き換えます:

      • <s3-bucket-name>:AWS S3バケットのバケット名。
      • <s3-bucket-path-prefix>: (オプション) S3 バケット内の配信場所へのパス。 指定しない場合、ログはバケットのルートに配信されます。 このパスは、ログ配信 API を呼び出すときに delivery_path_prefix 引数と一致する必要があります。
      JSON
      {
      "Version": "2012-10-17",
      "Statement": [
      {
      "Effect": "Allow",
      "Action": ["s3:GetBucketLocation"],
      "Resource": ["arn:aws:s3:::<s3-bucket-name>"]
      },
      {
      "Effect": "Allow",
      "Action": ["s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:PutObjectAcl", "s3:AbortMultipartUpload"],
      "Resource": [
      "arn:aws:s3:::<s3-bucket-name>/<s3-bucket-path-prefix>/",
      "arn:aws:s3:::<s3-bucket-name>/<s3-bucket-path-prefix>/*"
      ]
      },
      {
      "Effect": "Allow",
      "Action": ["s3:ListBucket", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads"],
      "Resource": "arn:aws:s3:::<s3-bucket-name>",
      "Condition": {
      "StringLike": {
      "s3:prefix": ["<s3-bucket-path-prefix>", "<s3-bucket-path-prefix>/*"]
      }
      }
      }
      ]
      }

      パスプレフィックスのポリシー使用は、次の方法でカスタマイズできます。

      • バケットパスプレフィックスを使用したくない場合は、<s3-bucket-path-prefix>/(末尾のスラッシュを含む)が表示されるたびにポリシーから削除します。
      • S3 バケットを共有し、異なるパスプレフィックスを使用する異なるワークスペースのログ配信設定が必要な場合は、複数のパスプレフィックスを含めることができます。 ポリシーには、 <s3-bucket-path-prefix>を参照する 2 つの部分があります。 いずれの場合も、パス プレフィックスを参照する 2 つの行を複製します。 例えば:
      JSON
      {
      "Resource": [
      "arn:aws:s3:::<mybucketname>/field-team/",
      "arn:aws:s3:::<mybucketname>/field-team/*",
      "arn:aws:s3:::<mybucketname>/finance-team/",
      "arn:aws:s3:::<mybucketname>/finance-team/*"
      ]
      }
    4. ポリシーの確認 」をクリックします。

    5. 名前 」フィールドにポリシー名を入力します。

    6. ポリシーの作成 」をクリックします。

    7. サービスコントロールポリシーを使用して AWS アカウントレベルで特定のアクションを拒否する場合は、Databricks がクロスアカウントロールを引き受けることができるように、sts:AssumeRole がホワイトリストに登録されていることを確認してください。

信頼ポリシーを作成する

  1. ロールの概要ページで、「 信頼関係 」タブをクリックします。

  2. このアクセス ポリシーをエディターに貼り付け、 <databricks-account-id> を Databricks アカウント ID に置き換えます。 ポリシーが Databricks on AWS GovCloud と AWS GovCloud DoD の場合は若干異なることに注意してください。

JSON
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::414351767826:role/SaasUsageDeliveryRole-prod-IAMRole-3PLHICCRR1TK"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": ["<databricks-account-id>"]
}
}
}
]
}
  1. ロールの概要で、 ロール ARN をコピーします。 この値は、次の手順で資格情報作成構成 API を呼び出すために必要です。

資格情報構成を作成する

資格情報の設定を完了するには、Databricks CLI を使用して 資格情報構成の作成 API を呼び出します。credentials_name をアカウント内で一意の名前に設定し、作成したロール ARN role_arnに設定します。

Bash
databricks account credentials create --json '{
"credentials_name": "databricks-credentials-v1",
"aws_credentials": {
"sts_role": {
"role_arn": "arn:aws:iam::<aws-account-id>:role/my-company-example-role"
}
}
}'

このリクエストは、クロスアカウントの信頼を確立し、新しいワークスペースを作成するときに使用できる参照 ID を返します。

応答例:

JSON
{
"account_id": "<databricks-account-id>",
"aws_credentials": {
"sts_role": {
"external_id": "<databricks-account-id>",
"role_arn": "arn:aws:iam::<aws-account-id>:role/my-company-example-role"
}
},
"creation_time": 1579753556257,
"credentials_id": "<databricks-credentials-id>",
"credentials_name": "databricks-credentials-v1"
}

後で使用するために、応答からcredentials_idフィールドをコピーします。

次のステップ

クロスアカウント配信を設定する必要がある場合 (S3 AWSIAMバケットがログ配信に使用される ロールとは異なる アカウントにある場合)は、「ステップ 3: クロスアカウントサポートを設定する (オプション)」 を参照してください。

S3バケットが、ログ配信に使用したAWS IAMロールと同じ アカウントにある場合は、ログ配信API を呼び出す最後のステップに進みます。「ステップ 4: ログ配信設定を作成する」を参照してください。