将 csv 从云存储导入云时,服务帐户访问被拒绝(权限问题?)sql
Access denied for service account (permission issue?) when importing a csv from cloud storage to cloud sql
我正在尝试使用我在云存储
中的 csv 填充 mysql 数据库
我正在使用 API Explorer 来执行具有以下请求正文的请求:
{
"importContext": {
"csvImportOptions": {
"columns": [
"col1",
"col2",
"col3"
],
"table": "table_name"
},
"database": "db_name",
"fileType": "CSV",
"kind": "sql#importContext",
"uri": "gs://some_bucket/somecsv.csv"
}
}
当我点击执行按钮时,我收到了 200 响应,正文如下
{
"kind": "sql#operation",
"selfLink": "https://www.googleapis.com/sql/v1beta4/projects/somelink",
"targetProject": "some-project",
"targetId": "some-tarjet",
"targetLink": "https://www.googleapis.com/sql/v1beta4/projects/somelink",
"name": "some-name",
"operationType": "IMPORT",
"status": "PENDING",
"user": "myuser@mydomain.com",
"insertTime": "somedate",
"importContext": {
...
}
}
但是如果我转到 google 控制台中的详细实例页面,我会看到此消息:
gs://link-to-csv: Access denied for account
oosyrcl32gnzypxg4uhqw54uab@somename.iam.gserviceaccount.com
(permission issue?)
我使用在 csv 所在的云存储中创建存储桶的同一帐户进行身份验证,这也是使用 python sdk 进行的。
您正在尝试从您的存储桶导入到您的云 SQL 实例,但是,该导入将由一个服务帐户进行,特别是一个,可以在“服务帐户”部分,同时查看您的 Cloud SQL 实例的详细信息。
可能是 CloudSQL 服务帐户没有适当的权限来访问包含要导入的数据的 Cloud Storage 存储桶。
为了在 SQL 实例和存储桶之间成功导入,应首先设置适当的权限。您应该给服务帐户 "oosyrcl32gnzypxg4uhqw54uab@speckle-umbrella-27.iam.gserviceaccount.com" Storage Object Viewer role.
- 转到:https://console.cloud.google.com/iam-admin/iam
- 单击“添加”以添加新成员。
- 将错误消息中显示的 gserviceaccount.com 电子邮件地址粘贴到新成员字段中。
- 添加 2 个角色:
- 云SQL查看器
- 存储对象管理员
- 点击保存。
我正在尝试使用我在云存储
中的 csv 填充 mysql 数据库我正在使用 API Explorer 来执行具有以下请求正文的请求:
{
"importContext": {
"csvImportOptions": {
"columns": [
"col1",
"col2",
"col3"
],
"table": "table_name"
},
"database": "db_name",
"fileType": "CSV",
"kind": "sql#importContext",
"uri": "gs://some_bucket/somecsv.csv"
}
}
当我点击执行按钮时,我收到了 200 响应,正文如下
{
"kind": "sql#operation",
"selfLink": "https://www.googleapis.com/sql/v1beta4/projects/somelink",
"targetProject": "some-project",
"targetId": "some-tarjet",
"targetLink": "https://www.googleapis.com/sql/v1beta4/projects/somelink",
"name": "some-name",
"operationType": "IMPORT",
"status": "PENDING",
"user": "myuser@mydomain.com",
"insertTime": "somedate",
"importContext": {
...
}
}
但是如果我转到 google 控制台中的详细实例页面,我会看到此消息:
gs://link-to-csv: Access denied for account oosyrcl32gnzypxg4uhqw54uab@somename.iam.gserviceaccount.com (permission issue?)
我使用在 csv 所在的云存储中创建存储桶的同一帐户进行身份验证,这也是使用 python sdk 进行的。
您正在尝试从您的存储桶导入到您的云 SQL 实例,但是,该导入将由一个服务帐户进行,特别是一个,可以在“服务帐户”部分,同时查看您的 Cloud SQL 实例的详细信息。
可能是 CloudSQL 服务帐户没有适当的权限来访问包含要导入的数据的 Cloud Storage 存储桶。
为了在 SQL 实例和存储桶之间成功导入,应首先设置适当的权限。您应该给服务帐户 "oosyrcl32gnzypxg4uhqw54uab@speckle-umbrella-27.iam.gserviceaccount.com" Storage Object Viewer role.
- 转到:https://console.cloud.google.com/iam-admin/iam
- 单击“添加”以添加新成员。
- 将错误消息中显示的 gserviceaccount.com 电子邮件地址粘贴到新成员字段中。
- 添加 2 个角色:
- 云SQL查看器
- 存储对象管理员
- 点击保存。