

# Aurora DSQL에 대한 인증 및 권한 부여
<a name="authentication-authorization"></a>

Aurora DSQL은 클러스터 권한 부여에 IAM 역할 및 정책을 사용합니다. 데이터베이스 권한 부여를 위해 IAM 역할을 [PostgreSQL 데이터베이스 역할](https://www.postgresql.org/docs/current/user-manag.html)과 연결합니다. 이 접근 방식은 [IAM의 이점](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-iam-features.html)과 [PostgreSQL 권한](https://www.postgresql.org/docs/current/user-manag.html)을 결합합니다. Aurora DSQL은 이러한 기능을 사용하여 클러스터, 데이터베이스 및 데이터에 대한 포괄적인 권한 부여 및 액세스 정책을 제공합니다.

## IAM을 사용하여 클러스터 관리
<a name="authentication-authorization-iam-role-manage"></a>

클러스터를 관리하려면 인증 및 권한 부여에 IAM을 사용합니다.

**IAM 인증**  
Aurora DSQL 클러스터를 관리할 때 IAM ID를 인증하려면 IAM을 사용해야 합니다. [AWS Management Console](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html), [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) 또는 [AWS SDK](https://docs.aws.amazon.com/sdkref/latest/guide/access.html)를 사용하여 인증을 제공할 수 있습니다.

**IAM 권한 부여**  
Aurora DSQL 클러스터를 관리하려면 Aurora DSQL에 대한 IAM 작업을 사용하여 권한을 부여합니다. 예를 들어 클러스터를 설명하려면 다음 샘플 정책 작업과 같이 IAM ID에 IAM 작업 `dsql:GetCluster`에 대한 권한이 있는지 확인합니다.  

```
{
  "Effect": "Allow",
  "Action": "dsql:GetCluster",
  "Resource": "arn:aws:dsql:us-east-1:{{123456789012}}:cluster/{{my-cluster}}"
}
```
자세한 내용은 [IAM 정책 작업을 사용하여 클러스터 관리](#authentication-authorization-iam-policy-manage) 섹션을 참조하세요.

## IAM을 사용하여 클러스터에 연결
<a name="authentication-authorization-iam-role-connect"></a>

클러스터에 연결하려면 인증 및 권한 부여에 IAM을 사용합니다.

**IAM 인증**  
클러스터에 연결할 권한이 있는 IAM ID를 사용하여 임시 인증 토큰을 생성합니다. 자세한 내용은 [Amazon Aurora DSQL에서 인증 토큰 생성](SECTION_authentication-token.md)를 참조하세요.

**IAM 권한 부여**  
클러스터의 엔드포인트에 대한 연결을 설정하는 데 사용하는 IAM ID에 다음 IAM 정책 작업을 부여합니다.  
+ `admin` 역할을 사용하는 경우 `dsql:DbConnectAdmin`을 사용합니다. Aurora DSQL은 이 역할을 자동으로 생성하고 관리합니다. 다음 샘플 IAM 정책 작업은 `admin`이 {{my-cluster}}에 연결하도록 허용합니다.

  ```
  {
    "Effect": "Allow",
    "Action": "dsql:DbConnectAdmin",
    "Resource": "arn:aws:dsql:us-east-1:{{123456789012}}:cluster/{{my-cluster}}"
  }
  ```
+ 사용자 지정 데이터베이스 역할을 사용하는 경우 `dsql:DbConnect`를 사용합니다. 데이터베이스에서 SQL 명령을 사용하여 이 역할을 생성하고 관리합니다. 다음 샘플 IAM 정책 작업은 사용자 지정 데이터베이스 역할이 최대 1시간 동안 {{my-cluster}}에 연결하도록 허용합니다.

  ```
  {
    "Effect": "Allow",
    "Action": "dsql:DbConnect",
    "Resource": "arn:aws:dsql:us-east-1:{{123456789012}}:cluster/{{my-cluster}}"
  }
  ```
연결을 설정하면 역할에 최대 1시간 동안 연결 권한이 부여됩니다.

## PostgreSQL 데이터베이스 역할 및 IAM 역할을 사용하여 데이터베이스와 상호 작용
<a name="authentication-authorization-database-roles-manage"></a>

PostgreSQL은 역할 개념을 사용하여 데이터베이스 액세스 권한을 관리합니다. 역할은 역할 설정 방식에 따라 데이터베이스 사용자 또는 데이터베이스 사용자 그룹으로 생각할 수 있습니다. SQL 명령을 사용하여 PostgreSQL 역할을 생성합니다. 데이터베이스 수준 권한 부여를 관리하려면 PostgreSQL 데이터베이스 역할에 PostgreSQL 권한을 부여합니다.

Aurora DSQL은 `admin` 역할 및 사용자 지정 역할이라는 두 가지 유형의 데이터베이스 역할을 지원합니다. Aurora DSQL은 Aurora DSQL 클러스터에 사전 정의된 `admin` 역할을 자동으로 생성합니다. `admin` 역할은 수정할 수 없습니다. `admin` 역할로 데이터베이스에 연결하면 SQL을 실행하여 IAM 역할과 연결할 새 데이터베이스 수준 역할을 생성할 수 있습니다. IAM 역할이 데이터베이스에 연결되도록 하려면 사용자 지정 데이터베이스 역할을 IAM 역할과 연결합니다.

**Authentication**  
`admin` 역할을 사용하여 클러스터에 연결합니다. 데이터베이스를 연결한 후 다음 예시와 같이 `AWS IAM GRANT` 명령을 사용하여 사용자 지정 데이터베이스 역할을 클러스터에 연결할 권한이 있는 IAM ID와 연결합니다.  

```
AWS IAM GRANT {{custom-db-role}} TO 'arn:aws:iam::{{account-id}}:role/{{iam-role-name}}';
```
자세한 내용은 [클러스터에 연결할 데이터베이스 역할 권한 부여](using-database-and-iam-roles.md#using-database-and-iam-roles-custom-database-roles)를 참조하세요.

**권한 부여**  
`admin` 역할을 사용하여 클러스터에 연결합니다. SQL 명령을 실행하여 사용자 지정 데이터베이스 역할을 설정하고 권한을 부여합니다. 자세한 내용은 PostgreSQL 설명서의 [PostgreSQL database roles](https://www.postgresql.org/docs/current/user-manag.html) 및 [PostgreSQL privileges](https://www.postgresql.org/docs/current/ddl-priv.html)를 참조하세요.

## Aurora DSQL에서 IAM 정책 작업 사용
<a name="authentication-authorization-iam-policy"></a>

사용하는 IAM 정책 작업은 클러스터에 연결하는 데 사용하는 역할이 `admin`인지 사용자 지정 데이터베이스 역할인지에 따라 달라집니다. 또한 정책은 이 역할에 필요한 IAM 작업에 따라 달라집니다.

### IAM 정책 작업을 사용하여 클러스터에 연결
<a name="authentication-authorization-iam-policy-connect"></a>

기본 데이터베이스 역할인 `admin`을 사용하여 클러스터에 연결할 때 다음 IAM 정책 작업을 수행할 권한이 있는 IAM ID를 사용합니다.

```
"dsql:DbConnectAdmin"
```

사용자 지정 데이터베이스 역할을 사용하여 클러스터에 연결할 때 먼저 IAM 역할을 데이터베이스 역할과 연결합니다. 클러스터에 연결하는 데 사용하는 IAM ID에는 다음 IAM 정책 작업을 수행할 수 있는 권한이 있어야 합니다.

```
"dsql:DbConnect"
```

사용자 지정 데이터베이스 역할에 대한 자세한 내용은 [데이터베이스 역할 및 IAM 인증 사용](using-database-and-iam-roles.md) 섹션을 참조하세요.

### IAM 정책 작업을 사용하여 클러스터 관리
<a name="authentication-authorization-iam-policy-manage"></a>

Aurora DSQL 클러스터를 관리할 때 역할이 수행해야 하는 작업에 대해서만 정책 작업을 지정합니다. 예를 들어, 역할이 클러스터 정보를 가져오기만 해야 하는 경우 다음 샘플 정책과 같이 역할 권한을 `GetCluster` 및 `ListClusters` 권한으로만 제한할 수 있습니다.

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

****  

```
{
"Version":"2012-10-17",		 	 	 
  "Statement" : [
    {
      "Effect" : "Allow",
      "Action" : [
        "dsql:GetCluster",
        "dsql:ListClusters"
      ],
      "Resource": "arn:aws:dsql:us-east-1:{{123456789012}}:cluster/{{my-cluster}}"
    }
  ]
}
```

------

다음 예시 정책은 클러스터 관리에 사용할 수 있는 모든 IAM 정책 작업을 보여줍니다.

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

****  

```
{
"Version":"2012-10-17",		 	 	 
  "Statement" : [
    {
      "Effect" : "Allow",
      "Action" : [
        "dsql:CreateCluster",
        "dsql:GetCluster",
        "dsql:UpdateCluster",
        "dsql:DeleteCluster",
        "dsql:ListClusters",
        "dsql:TagResource",
        "dsql:ListTagsForResource",
        "dsql:UntagResource"
      ],
      "Resource" : "*"
    }
  ]
}
```

------

## IAM 및 PostgreSQL을 사용하여 권한 부여 취소
<a name="authentication-authorization-revoke"></a>

IAM 역할이 데이터베이스 수준 역할에 액세스할 수 있는 권한을 취소할 수 있습니다.

**클러스터에 연결하는 관리자 권한 부여 취소**  
`admin` 역할을 클러스터에 연결할 수 있는 권한을 취소하려면 `dsql:DbConnectAdmin`에 대한 IAM ID의 액세스를 취소합니다. IAM 정책을 편집하거나 ID에서 정책을 분리합니다.  
IAM ID에서 연결 권한 부여를 취소한 후 Aurora DSQL은 해당 IAM ID의 모든 새 연결 시도를 거부합니다. IAM ID를 사용하는 모든 활성 연결은 연결 기간 동안 권한을 유지할 수 있습니다. 한도와 할당량에 대한 자세한 내용은 [Quotas and limits](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/CHAP_quotas.html)를 참조하세요.

**클러스터에 연결하는 사용자 지정 권한 부여 취소**  
`admin` 외의 데이터베이스 역할에 대한 액세스를 취소하려면 `dsql:DbConnect`에 대한 IAM ID의 액세스를 취소합니다. IAM 정책을 편집하거나 ID에서 정책을 분리합니다.  
데이터베이스에서 `AWS IAM REVOKE` 명령을 사용하여 데이터베이스 역할과 IAM 간의 연결을 제거할 수도 있습니다. 데이터베이스 역할에서 액세스를 취소하는 방법에 대한 자세한 내용은 [IAM 역할에서 데이터베이스 권한 부여 취소](using-database-and-iam-roles.md#using-database-and-iam-roles-revoke) 섹션을 참조하세요.

사전 정의된 `admin` 데이터베이스 역할의 권한은 관리할 수 없습니다. 사용자 지정 데이터베이스 역할에 대한 권한을 관리하는 방법을 알아보려면 [PostgreSQL privileges](https://www.postgresql.org/docs/current/ddl-priv.html)를 참조하세요. 권한 수정은 Aurora DSQL이 수정 트랜잭션을 성공적으로 커밋한 후 다음 트랜잭션에 적용됩니다.