

 Amazon Redshift는 패치 198부터 새 Python UDF 생성을 더 이상 지원하지 않습니다. 기존 Python UDF는 2026년 6월 30일까지 계속 작동합니다. 자세한 내용은 [블로그 게시물](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)을 참조하세요.

# Amazon Redshift에서 기존 데이터 공유에 대한 소비자 작업
기존 데이터 공유에 대한 소비자 작업

Amazon Redshift를 사용하면 기존 데이터 공유를 관리하여 Amazon Redshift 클러스터의 데이터에 대한 액세스를 제어할 수 있습니다. 다음 섹션에서는 Amazon Redshift 환경에서 소비자 관리자로서 데이터 공유를 관리하는 방법에 대한 단계별 가이드를 제공합니다.

**Topics**
+ [

# Amazon Redshift에서 데이터 공유에 대한 권한 관리
](writes-managing-permissions.md)
+ [

# Amazon Redshift의 다른 AWS 계정에 있는 데이터 소비자에게서 데이터 공유 연결 제거
](writes-disassociating-datashare.md)
+ [

# Amazon Redshift에서 다른 AWS 계정의 데이터 공유 거부
](writes-declining-datashare.md)

# Amazon Redshift에서 데이터 공유에 대한 권한 관리
데이터 공유에 대한 권한 관리

생산자 관리자는 공유 중인 데이터세트에 대한 제어 권한을 보유합니다. 따라서 datashare에서 새 객체를 추가하거나 제거할 수 있습니다. 소비자 클러스터 및 AWS 계정 또는 AWS 리전에 대해 전체적으로 datashare에 대한 액세스 권한을 부여하거나 취소할 수도 있습니다. 권한이 취소되면 소비자 클러스터는 즉시 공유 객체에 대한 액세스 권한을 상실하고 SVV\$1DATASHARES의 INBOUND datashare 목록에서 해당 객체를 볼 수 없습니다.

다음 예제에서는 `salesshare` 데이터 공유를 만들고, `public` 스키마를 추가하고, `public.tickit_sales_redshift` 테이블을 `salesshare`에 추가합니다. 또한 특정 네임스페이스에 `salesshare`에 대한 사용 권한을 부여합니다.

```
CREATE DATASHARE salesshare;
            
ALTER DATASHARE salesshare ADD SCHEMA public;

ALTER DATASHARE salesshare ADD TABLE public.tickit_sales_redshift; 

GRANT USAGE ON DATASHARE salesshare TO NAMESPACE '13b8833d-17c6-4f16-8fe4-1a018f5ed00d';
```

CREATE DATASHARE의 경우 슈퍼 사용자와 데이터베이스 소유자는 datashare를 생성할 수 있습니다. 자세한 내용은 [CREATE DATASHARE](r_CREATE_DATASHARE.md) 섹션을 참조하세요. ALTER DATASHARE의 경우 추가하거나 제거할 datashare 객체에 대한 필수 권한이 있는 datashare 소유자는 datashare를 변경할 수 있습니다. 자세한 내용은 [ALTER DATASHARE](r_ALTER_DATASHARE.md) 섹션을 참조하세요.

생산자 관리자가 삭제한 datashare는 소비자 클러스터에 더 이상 나열되지 않습니다. 삭제된 datashare에서 소비자 클러스터에 생성된 데이터베이스 및 스키마 참조는 객체 없이 계속 존재합니다. 소비자 관리자는 수동으로 이러한 데이터베이스를 삭제해야 합니다.

소비자 측에서 소비자 관리자는 데이터 공유에서 데이터베이스를 만들어 공유 데이터에 액세스해야 하는 사용자와 역할을 결정할 수 있습니다. 데이터베이스를 생성할 때 선택한 옵션에 따라 다음과 같이 데이터베이스 액세스를 제어할 수 있습니다. 데이터 공유에서 데이터베이스 생성에 대한 자세한 내용은 [데이터베이스 생성](r_CREATE_DATABASE.md) 섹션을 참조하세요.

데이터 공유 설정 및 소비자의 데이터 읽기에 대한 자세한 내용은 [AWS 계정 내 데이터에 대한 읽기 액세스 공유](https://docs.aws.amazon.com/redshift/latest/dg/within-account.html)를 참조하세요.

**WITH PERMISSIONS 절을 사용하지 않고 데이터베이스 생성**  
관리자는 데이터베이스 또는 스키마 수준에서 액세스를 제어할 수 있습니다. 스키마 수준에서 액세스를 제어하려면 관리자는 데이터 공유에서 생성된 Amazon Redshift 데이터베이스에서 외부 스키마를 생성해야 합니다.

다음 예에서는 데이터베이스 수준 및 스키마 수준에서 공유 테이블에 액세스할 수 있는 권한을 부여합니다.

```
GRANT USAGE ON DATABASE sales_db TO Bob;

CREATE EXTERNAL SCHEMA sales_schema FROM REDSHIFT DATABASE sales_db SCHEMA 'public';

GRANT USAGE ON SCHEMA sales_schema TO ROLE Analyst_role;
```

액세스를 추가로 제한하려면 공유 객체 위에 뷰를 생성하여 필요한 데이터만 표시할 수 있습니다. 그런 다음 이러한 뷰를 사용하여 사용자와 역할에 대한 액세스 권한을 부여할 수 있습니다.

사용자에게 데이터베이스 또는 스키마에 대한 액세스 권한이 부여된 후 해당 데이터베이스 또는 스키마의 모든 공유 객체에 액세스할 수 있습니다.

**WITH PERMISSIONS 절을 사용하여 데이터베이스 생성**  
데이터베이스 또는 스키마에 대한 사용 권한을 부여한 후 관리자는 로컬 데이터베이스 또는 스키마에서와 동일한 권한 부여 프로세스를 사용하여 액세스를 추가로 제어할 수 있습니다. 개별 객체 권한이 없으면 사용자는 USAGE 권한을 부여받은 후에도 데이터 공유 데이터베이스 또는 스키마의 객체에 액세스할 수 없습니다.

다음 예에서는 데이터베이스 수준에서 공유 테이블에 액세스할 수 있는 권한을 부여합니다.

```
GRANT USAGE ON DATABASE sales_db TO Bob;
GRANT USAGE FOR SCHEMAS IN DATABASE sales_db TO Bob;
GRANT SELECT ON sales_db.public.tickit_sales_redshift TO Bob;
```

데이터베이스 또는 스키마에 대한 액세스 권한을 부여받은 후에도 사용자는 액세스하려는 데이터베이스 또는 스키마의 모든 객체에 대한 관련 권한을 부여받아야 합니다.

## WITH PERMISSIONS를 사용한 세분화된 공유


WITH PERMISSIONS을 사용하여 세분화된 공유를 사용해 클러스터 또는 Serverless 작업 그룹이 데이터 공유를 쿼리하도록 할 수 있습니다. 이 프로세스에서는 데이터 공유가 사용자 계정의 다른 클러스터 또는 Amazon Redshift Serverless 네임스페이스에서 시작되거나 다른 계정에서 가져왔고 사용 중인 네임스페이스와 연결되어 있다고 가정합니다.

1. 소비자 데이터베이스 관리자는 데이터 공유에서 데이터베이스를 생성할 수 있습니다.

   ```
   CREATE DATABASE my_ds_db [WITH PERMISSIONS] FROM DATASHARE my_datashare OF NAMESPACE 'abc123def';
   ```

   WITH PERMISSIONS을 사용하여 데이터베이스를 만드는 경우 데이터 공유 객체에 대한 세분화된 권한을 다양한 사용자 및 역할에 부여할 수 있습니다. 이렇게 하지 않으면 데이터 공유 데이터베이스에 대한 USAGE 권한이 부여된 모든 사용자 및 역할에 데이터 공유 데이터베이스 내의 모든 객체에 대한 모든 권한이 부여됩니다.

1. 다음은 Redshift 데이터베이스 사용자 또는 역할에 권한을 부여하는 방법을 보여줍니다. 이 문을 실행하려면 로컬 데이터베이스에 연결되어 있어야 합니다. 권한 부여 문을 실행하기 전에 데이터 공유 데이터베이스에서 USE 명령을 실행하면 이러한 문을 실행할 수 없습니다.

   ```
   GRANT USAGE ON DATABASE my_ds_db TO ROLE data_eng;
   GRANT CREATE, USAGE ON SCHEMA my_ds_db.my_shared_schema TO ROLE data_eng;
   GRANT ALL ON ALL TABLES IN SCHEMA my_ds_db.my_shared_schema TO ROLE data_eng;
    
   GRANT USAGE ON DATABASE my_ds_db TO bi_user;
   GRANT USAGE ON SCHEMA my_ds_db.my_shared_schema TO bi_user;
   GRANT SELECT ON my_ds_db.my_shared_schema.table1 TO bi_user;
   ```

# Amazon Redshift의 다른 AWS 계정에 있는 데이터 소비자에게서 데이터 공유 연결 제거
데이터 소비자에게서 데이터 공유 연결 제거

Amazon Redshift를 사용하면 다른 AWS 계정에서 공유하는 데이터 공유에서 연결을 제거할 수 있습니다. 데이터 공유는 하나 이상의 Redshift 데이터베이스에서 데이터를 캡슐화하는 공유 가능한 데이터베이스 객체입니다. 다음 섹션에서는 Redshift 환경 내에서 데이터 공유의 연결을 해제하는 프로세스를 보여줍니다.

------
#### [ Console ]

콘솔에서 소비자 관리자는 데이터 소비자에게서 데이터 공유 연결을 제거할 수 있습니다.

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)에서 Amazon Redshift 콘솔을 엽니다.

1. 탐색 메뉴에서 **Datashares**를 선택합니다. datashare 목록 페이지가 나타납니다.

1. [**다른 계정에서(From other accounts)**]를 선택합니다.

1. [**다른 계정의 datashare(Datashares from other accounts)**] 섹션에서 데이터 소비자에게서 연결을 제거할 datashare를 선택합니다.

1. [**데이터 소비자(Data consumers)**] 섹션에서 연결을 제거할 데이터 소비자를 하나 이상 선택합니다. 그런 다음 [**연결 제거(Remove association)**]를 선택합니다.

1. 연결 제거 페이지가 나타나면 [**연결 제거(Remove association)**]를 선택합니다.

연결이 제거되면 데이터 소비자는 datashare에 대한 액세스 권한을 상실합니다. 언제든지 데이터 소비자 연결을 변경할 수 있습니다.

------
#### [ SQL ]

**참고**  
이 섹션의 단계는 생산자 관리자가 공유 데이터베이스 객체에 대한 특정 작업을 허용하고, 데이터 공유를 다른 계정과 공유하는 경우 생산자 보안 관리자가 액세스를 권한을 부여한 후에 수행됩니다.

소비자 보안 관리자는 데이터 공유를 다음 명령과 연결 해제할 수 있습니다.

```
disassociate-data-share-consumer
--data-share-arn <value>
```

명령에 대한 자세한 내용은 [disassociate-data-share-consumer](https://docs.aws.amazon.com/cli/latest/reference/redshift/disassociate-data-share-consumer.html)를 참조하세요.

------

# Amazon Redshift에서 다른 AWS 계정의 데이터 공유 거부
데이터 공유 거부

Amazon Redshift를 사용하면 다른 AWS 계정에서 공유한 데이터 공유를 거부할 수 있으므로 조직 경계 전반에서 원활하고 안전한 데이터 공유가 가능합니다. 데이터 공유는 하나 이상의 Amazon Redshift 데이터베이스에서 데이터를 캡슐화하는 공유 가능한 데이터베이스 객체입니다.

소비자 관리자는 사용 가능 또는 활성 상태인 데이터 공유를 거부할 수 있습니다. 데이터 공유를 거부하면 소비자 클러스터 사용자는 데이터 공유에 대한 액세스 권한을 상실합니다. Amazon Redshift는 `DescribeDataSharesForConsumer` API 작업을 호출하는 경우 거부된 데이터 공유를 반환하지 않습니다. 생산자 관리자가 `DescribeDataSharesForProducer` API 작업을 실행하면 데이터 공유가 거부된 것을 확인할 수 있습니다. 데이터 공유가 거부되면 생산자 관리자는 소비자 클러스터에 대한 데이터 공유를 다시 승인할 수 있으며, 소비자 관리자는 자신의 AWS 계정을 데이터 공유와 연결하거나 이를 거부하도록 선택할 수 있습니다.

AWS 계정이 데이터 공유와 연결되어 있고 Lake Formation에서 관리하는 데이터 공유에 대한 보류 중인 연결이 있는 경우. Lake Formation에서 관리하는 데이터 공유 연결을 거부하면 원래 데이터 공유도 거부됩니다. 특정 연결을 거부하려면 생산자 관리자가 지정된 데이터 공유에서 권한 부여를 제거할 수 있습니다. 이 작업은 다른 데이터 공유에 영향을 주지 않습니다.

데이터 공유를 거부하려면 AWS 콘솔, API 작업 `RejectDataShare` 또는 AWS CLI의 `reject-datashare`를 사용하세요.

------
#### [ Console ]

AWS Console을 사용하여 데이터 공유를 거부하려면 다음 단계를 수행합니다.

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)에서 Amazon Redshift 콘솔을 엽니다.

1. 탐색 메뉴에서 **데이터 공유**를 선택합니다.

1. [**다른 계정에서(From other accounts)**]를 선택합니다.

1. [**다른 계정의 datashare(Datashares from other accounts)**] 섹션에서 거부할 datashare를 선택합니다. **datashare 거부(Decline datashare)** 페이지가 나타나면 **거부(Decline)**를 선택합니다.

datashare를 거부한 후에는 변경 사항을 되돌릴 수 없습니다. Amazon Redshift가 목록에서 데이터 공유를 제거합니다. 데이터 공유를 다시 보려면 생산자 관리자가 데이터 공유를 다시 승인해야 합니다.

------
#### [ CLI ]

데이터 공유를 거부하려면 관리자가 다음 명령을 사용합니다.

```
reject-data-share
--data-share-arn <value>
```

명령에 대한 자세한 내용은 [reject-data-share](https://docs.aws.amazon.com/cli/latest/reference/redshift/reject-data-share.html)를 참조하세요.

------