

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Siapkan izin IAM untuk mengakses sumber data (untuk administrator)
<a name="sagemaker-sql-extension-datasources-connection-permissions"></a>

Administrator harus memastikan bahwa peran eksekusi yang digunakan oleh JupyterLab aplikasi memiliki izin AWS IAM yang diperlukan untuk mengakses data melalui koneksi yang dikonfigurasi. AWS Glue 
+ **Koneksi yang dibuat oleh administrator menggunakan AWS CLI**: Untuk melihat AWS Glue koneksi yang [dibuat oleh administrator](sagemaker-sql-extension-datasources-glue-connection.md) dan mengakses data mereka, pengguna harus meminta administrator mereka melampirkan izin khusus ke peran eksekusi SageMaker AI yang digunakan oleh JupyterLab aplikasi mereka di Studio. Ini termasuk akses ke AWS Glue, Secrets Manager, dan izin khusus database. Koneksi yang dibuat oleh administrator dapat dilihat oleh semua aplikasi yang berbagi peran eksekusi yang diberikan izin untuk melihat AWS Glue katalog atau database tertentu. Untuk mempelajari tentang daftar izin yang diperlukan per jenis sumber data, lihat izin koneksi yang ditentukan admin di. [Koneksi yang ditentukan admin memerlukan izin IAM](#admin-defined-connections-permissions) 
+ **Koneksi yang dibuat oleh pengguna menggunakan UI ekstensi SQL di JupyterLab**: Koneksi yang [dibuat oleh profil pengguna](sagemaker-sql-extension-datasources-glue-connection-user-defined.md) yang berbagi peran eksekusi yang sama juga akan dicantumkan kecuali visibilitas koneksi mereka dicakup ke hanya yang dibuat oleh pengguna. Koneksi yang dibuat oleh pengguna ditandai dengan profil pengguna yang membuatnya. Untuk membatasi kemampuan untuk melihat, memperbarui, atau menghapus koneksi yang dibuat pengguna tersebut hanya untuk pengguna yang membuatnya, administrator dapat menambahkan pembatasan kontrol akses berbasis tag tambahan ke izin IAM peran eksekusi. Untuk mempelajari tentang kontrol akses berbasis tag tambahan yang diperlukan, lihat[Koneksi yang ditentukan pengguna memerlukan izin IAM](#user-defined-connections-permissions).

## Koneksi yang ditentukan admin memerlukan izin IAM
<a name="admin-defined-connections-permissions"></a>

Untuk memberikan peran eksekusi SageMaker AI yang digunakan oleh JupyterLab aplikasi Anda di Studio akses ke sumber data melalui AWS Glue koneksi, lampirkan kebijakan inline berikut ke peran tersebut.

Untuk melihat izin spesifik dan detail kebijakan untuk setiap sumber data atau metode autentikasi, pilih jenis sambungan yang relevan di bawah ini.

**catatan**  
Sebaiknya batasi izin kebijakan Anda hanya pada sumber daya dan tindakan yang diperlukan.  
Untuk mengurangi kebijakan dan memberikan akses hak istimewa paling sedikit, ganti wildcard `"Resource": ["*"]` dalam kebijakan Anda dengan spesifik ARNs untuk sumber daya yang tepat yang memerlukan akses. Untuk informasi selengkapnya tentang cara mengontrol akses ke sumber daya Anda, lihat[Selaraskan akses AWS sumber daya dengan izin ARN granular](#resource-access-control).

### Semua jenis koneksi
<a name="datasources-connection-permissions-all"></a>

**catatan**  
Kami sangat menyarankan untuk meringkas kebijakan ini hanya pada tindakan dan sumber daya yang diperlukan.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GetS3AndDataSourcesMetadata",
            "Effect": "Allow",
            "Action": [
                "glue:GetDatabases",
                "glue:GetSchema",
                "glue:GetTables",
                "s3:ListBucket",
                "s3:GetObject",
                "s3:GetBucketLocation",
                "glue:GetDatabase",
                "glue:GetTable",
                "glue:ListSchemas",
                "glue:GetPartitions"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*",
                "arn:aws:glue:us-east-1:111122223333:catalog",
    "arn:aws:glue:us-east-1:111122223333:connection/*"
            ]
        },
        {
            "Sid": "ExecuteQueries",
            "Effect": "Allow",
            "Action": [
                "athena:ListDataCatalogs",
                "athena:ListDatabases",
                "athena:ListTableMetadata",
                "athena:StartQueryExecution",
                "athena:GetQueryExecution",
                "athena:RunQuery",
                "athena:StartSession",
                "athena:GetQueryResults",
                "athena:ListWorkGroups",
                "s3:ListMultipartUploadParts",
                "s3:ListBucket",
                "s3:GetBucketLocation",
                "athena:GetDataCatalog",
                "s3:AbortMultipartUpload",
                "s3:GetObject",
                "s3:PutObject",
                "athena:GetWorkGroup"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*",
                "arn:aws:athena:us-east-1:111122223333:workgroup/workgroup-name"
            ]
        },
        {
            "Sid": "GetGlueConnections",
            "Effect": "Allow",
            "Action": [
                "glue:GetConnections",
                "glue:GetConnection"
            ],
            "Resource": [
                "arn:aws:glue:us-east-1:111122223333:catalog",
                "arn:aws:glue:us-east-1:111122223333:connection/*"
            ]
        },
        {
            "Sid": "GetSecrets",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Resource": [
                "arn:aws:secretsmanager:us-east-1:111122223333:secret:secret-name"
            ]
        },
        {
            "Sid": "GetClusterCredentials",
            "Effect": "Allow",
            "Action": [
                "redshift:GetClusterCredentials"
            ],
            "Resource": [
                "arn:aws:redshift:us-east-1:111122223333:cluster:cluster-name"
            ]
        }
    ]
}
```

------

### Athena
<a name="datasources-connection-permissions-athena"></a>

**catatan**  
Kami sangat menyarankan untuk meringkas kebijakan ini hanya untuk sumber daya yang diperlukan.

[Untuk informasi selengkapnya, lihat *Contoh kebijakan izin IAM di dokumentasi* Athena.](https://docs.aws.amazon.com/athena/latest/ug/federated-query-iam-access.html)

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GetS3AndDataSourcesMetadata",
            "Effect": "Allow",
            "Action": [
                "glue:GetDatabases",
                "glue:GetSchema",
                "glue:GetTables",
                "s3:ListBucket",
                "s3:GetObject",
                "s3:GetBucketLocation",
                "glue:GetDatabase",
                "glue:GetTable",
                "glue:ListSchemas",
                "glue:GetPartitions"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*",                
                "arn:aws:glue:us-east-2:111122223333:catalog",
                "arn:aws:glue:us-east-2:111122223333:connection/*"
            ]
        },
        {
            "Sid": "ExecuteAthenaQueries",
            "Effect": "Allow",
            "Action": [
                "athena:ListDataCatalogs",
                "athena:ListDatabases",
                "athena:ListTableMetadata",
                "athena:StartQueryExecution",
                "athena:GetQueryExecution",
                "athena:RunQuery",
                "athena:StartSession",
                "athena:GetQueryResults",
                "athena:ListWorkGroups",
                "s3:ListMultipartUploadParts",
                "s3:ListBucket",
                "s3:GetBucketLocation",
                "athena:GetDataCatalog",
                "s3:AbortMultipartUpload",
                "s3:GetObject",
                "s3:PutObject",
                "athena:GetWorkGroup"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*",
                "arn:aws:athena:us-east-2:111122223333:workgroup/workgroup-name"
            ]
        },
        {
            "Sid": "GetGlueConnections",
            "Effect": "Allow",
            "Action": [
                "glue:GetConnections",
                "glue:GetConnection"
            ],
            "Resource": [
                "arn:aws:glue:us-east-2:111122223333:catalog",
                "arn:aws:glue:us-east-2:111122223333:connection/*"
            ]
        },
        {
            "Sid": "GetSecrets",
            "Effect": "Allow",
            "Action": [                
                "secretsmanager:GetSecretValue"
            ],
            "Resource": [
                "arn:aws:secretsmanager:us-east-2:111122223333:secret:secret-name"       
            ]
        }
    ]
}
```

------

### Amazon Redshift dan Amazon Redshift Tanpa Server (autentikasi nama pengguna & kata sandi)/Snowflake
<a name="datasources-connection-permissions-snowflake-redshift-user-password"></a>

**catatan**  
Kami sangat menyarankan untuk meringkas kebijakan ini hanya untuk sumber daya yang diperlukan.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GetS3Metadata",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ]
        },
        {
            "Sid": "GetGlueConnections",
            "Effect": "Allow",
            "Action": [
                "glue:GetConnections",
                "glue:GetConnection"
            ],
            "Resource": [
                "arn:aws:glue:us-east-2:111122223333:catalog",
                "arn:aws:glue:us-east-2:111122223333:connection/*"
            ]
        },
        {
            "Sid": "GetSecrets",
            "Effect": "Allow",
            "Action": [                
                "secretsmanager:GetSecretValue"
            ],
            "Resource": [
                "arn:aws:secretsmanager:us-east-2:111122223333:secret:secret-name"            
            ]
        }
    ]
}
```

------

### Amazon Redshift (autentikasi IAM)
<a name="datasources-connection-permissions-redshift-iam"></a>

**catatan**  
Kami sangat menyarankan untuk meringkas kebijakan ini hanya untuk sumber daya yang diperlukan.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GetS3Metadata",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*",
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ]
        },
        {
            "Sid": "GetGlueConnections",
            "Effect": "Allow",
            "Action": [
                "glue:GetConnections",
                "glue:GetConnection"
            ],
            "Resource": [
                "arn:aws:glue:us-east-1:111122223333:catalog",
                "arn:aws:glue:us-east-1:111122223333:connection/*",
                "arn:aws:glue:us-east-1:111122223333:connection/connection-name"
            ]
        },
        {
            "Sid": "GetSecrets",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Resource": [
                "arn:aws:secretsmanager:us-east-1:111122223333:secret:secret-name",
                "arn:aws:secretsmanager:us-east-1:111122223333:secret:secret-name-with-suffix"
            ]
        },
        {
            "Sid": "GetClusterCredentials",
            "Effect": "Allow",
            "Action": [
                "redshift:GetClusterCredentials"
            ],
            "Resource": [
                "arn:aws:redshift:us-east-1:111122223333:cluster:cluster-name",
                "arn:aws:redshift:us-east-1:111122223333:dbuser:cluster-name/db-user-name"
            ]
        }
    ]
}
```

------

### Amazon Redshift tanpa server (autentikasi IAM)
<a name="datasources-connection-permissions-redshift-serverless-iam"></a>

**catatan**  
Kami sangat menyarankan untuk meringkas kebijakan ini hanya untuk sumber daya yang diperlukan.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GetS3Metadata",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ]
        },
        {
            "Sid": "GetGlueConnections",
            "Effect": "Allow",
            "Action": [
                "glue:GetConnections",
                "glue:GetConnection"
            ],
            "Resource": [
                "arn:aws:glue:us-east-2:111122223333:catalog",
                "arn:aws:glue:us-east-2:111122223333:connection/*"
            ]
        },
        {
            "Sid": "GetSecrets",
            "Effect": "Allow",
            "Action": [                
                "secretsmanager:GetSecretValue"
            ],
            "Resource": [
                "arn:aws:secretsmanager:us-east-2:111122223333:secret:secret-name"         
            ]
        },
        {
            "Sid": "GetRedshiftServerlessCredentials",
            "Effect": "Allow",
            "Action": [
                "redshift-serverless:GetCredentials"
            ],
            "Resource": [
                "arn:aws:redshift-serverless:us-east-2:111122223333:namespace/namespace-id"           
            ]
        }
    ]
}
```

------

## Koneksi yang ditentukan pengguna memerlukan izin IAM
<a name="user-defined-connections-permissions"></a>

Izin kebijakan IAM untuk pengguna dapat menjelaskan keberadaan `UserProfile` tag pada sumber daya AWS Glue koneksi.
+ **Untuk melihat AWS Glue koneksi**:
  + Pengguna dapat melihat semua koneksi yang tidak memiliki `UserProfile` tag (dibuat oleh administrator). 
  + Pengguna dapat melihat koneksi yang memiliki `UserProfile` tag dengan nilai yang sama dengan nama profil pengguna mereka. 
  + Pengguna tidak dapat melihat koneksi yang memiliki `UserProfile` tag dengan nilai yang berbeda dari nama profil pengguna mereka. 
+ **Untuk memperbarui atau menghapus AWS Glue koneksi**:
  + Pengguna dapat memperbarui atau menghapus koneksi yang memiliki `UserProfile` tag dengan nilai yang sama dengan nama profil pengguna mereka. 
  + Pengguna tidak dapat memperbarui atau menghapus koneksi yang memiliki `UserProfile` tag dengan nilai berbeda dari nama profil pengguna mereka. 
  + Pengguna tidak dapat memperbarui atau menghapus koneksi yang tidak memiliki `UserProfile` tag. 

Untuk mencapai hal ini, administrator harus memberikan peran eksekusi yang digunakan oleh JupyterLab aplikasi profil pengguna izin tambahan di luar izin koneksi yang ditentukan [admin](#admin-defined-connections-permissions) yang ada. Secara khusus, selain izin yang diperlukan untuk mengakses AWS Glue koneksi yang ditentukan admin, dua izin IAM tambahan berikut harus diberikan kepada peran eksekusi pengguna:
+ Izin untuk membuat AWS Glue koneksi dan mengaitkan `UserProfile` tag dengan nilai nama profil pengguna.
+ Izin untuk melihat, memperbarui, dan menghapus AWS Glue koneksi yang memiliki `UserProfile` tag yang cocok dengan nama profil pengguna.

Izin ini membatasi akses ke AWS Glue koneksi berdasarkan nilai tag profil pengguna tertentu. Perbarui nilai `UserProfile` tag dengan nama profil pengguna yang ingin Anda targetkan.

```
"Action": [
    "glue:GetConnection",
    "glue:GetConnections"    
],
"Resource": [
    "arn:aws:glue:region:account_id:connection/*"
],
"Condition": {
    "StringEqualsIfExists": {
        "aws:ResourceTag/UserProfile": "user_profile_name"
    }
}
```

Izin ini membatasi kemampuan untuk membuat, memperbarui, dan menghapus koneksi yang dibuat pengguna hanya ke koneksi yang dibuat oleh profil pengguna dengan nilai tag yang ditentukan`UserProfile`.

```
"Action": [
    "glue:DeleteConnection",
    "glue:UpdateConnection",
    "glue:CreateConnection",
    "glue:TagResource"
],
"Resource": [
    "arn:aws:glue:region:account_id:connection/*"
],
"Condition": {
    "StringEquals": {
        "aws:ResourceTag/UserProfile": "user_profile"
    }
}
```

## Selaraskan akses AWS sumber daya dengan izin ARN granular
<a name="resource-access-control"></a>

Untuk kontrol yang lebih halus atas akses ke AWS sumber daya Anda, ganti sumber daya wildcard `"Resource": ["*"]` dalam kebijakan Anda dengan Nama Sumber Daya Amazon tertentu (ARNs) hanya sumber daya yang memerlukan akses. Menggunakan yang tepat ARNs daripada wildcard membatasi akses ke sumber daya yang dimaksud. 
+ **Gunakan bucket Amazon S3 tertentu ARNs**

  Misalnya `"arn:aws:s3:::bucket-name"` atau ` "arn:aws:s3:::bucket-name/*"` untuk operasi tingkat ember atau tingkat objek.

  Untuk informasi tentang semua jenis sumber daya di Amazon S3, lihat [Jenis sumber daya yang ditentukan oleh Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-resources-for-iam-policies).
+ **Gunakan AWS Glue database tertentu ARNs**

  Misalnya, ` "arn:aws:glue:region:account-id:catalog"` atau ` "arn:aws:glue:region:account-id:database/db-name"`. Untuk informasi tentang semua jenis sumber daya AWS Glue, lihat [Jenis sumber daya yang ditentukan oleh AWS Glue](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsglue.html#awsglue-resources-for-iam-policies).
+ **Gunakan workgroup Athena tertentu ARNs**

  Sebagai contoh, `"arn:aws:athena:region:account-id:workgroup/workgroup-name"`. Untuk informasi tentang semua jenis sumber daya di Athena, lihat [Jenis sumber daya yang ditentukan oleh Athena](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html#amazonathena-resources-for-iam-policies).
+ **Gunakan AWS rahasia Secrets Manager tertentu ARNs**

  Sebagai contoh, `"arn:aws:secretsmanager:region:account-id:secret:secret-name"`. Untuk informasi tentang semua jenis sumber daya di AWS Secrets Manager, lihat [Jenis sumber daya yang ditentukan oleh AWS Secrets Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssecretsmanager.html#awssecretsmanager-resources-for-iam-policies)
+ **Gunakan cluster Amazon Redshift tertentu ARNs**

  Sebagai contoh, `"arn:aws:redshift:region:account-id:cluster:cluster-name"`. Untuk informasi tentang jenis sumber daya di Amazon Redshift, lihat [Jenis sumber daya yang ditentukan oleh Amazon Redshift](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshift.html#amazonredshift-resources-for-iam-policies). Untuk informasi tentang semua jenis sumber daya di Redshift Tanpa Server, lihat Jenis [sumber daya yang ditentukan oleh](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonredshiftserverless.html#amazonredshiftserverless-resources-for-iam-policies) Redshift Tanpa Server.