> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/roboflow/roboflow-ko/datasets/adding-data/datasources/datasource-policy-examples.md).

# Datasource 정책 예시

AWS S3-backed bucket에 대한 policy JSON이 필요할 때는 이 예시를 사용하세요.

Assume Role을 사용할 때와 IAM access keys를 사용할 때를 포함한 전체 AWS credential 설정 흐름은 다음을 참조하세요. [AWS S3 Credentials](/roboflow/roboflow-ko/datasets/adding-data/datasources/datasource-credentials/aws-s3.md).

## Custom IAM Policy

이 policy는 Roboflow에 하나의 bucket에 대해서만 access를 부여하는 IAM credentials를 만들고 싶을 때 사용하세요.

```json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket", "s3:GetBucketLocation"],
      "Resource": "arn:aws:s3:::your-bucket-name"
    },
    {
      "Effect": "Allow",
      "Action": ["s3:GetObject", "s3:GetObjectVersion", "s3:GetObjectTagging"],
      "Resource": "arn:aws:s3:::your-bucket-name/*"
    }
  ]
}
```

다음을 `your-bucket-name` 를 실제 bucket 이름으로 바꾸세요.

## Bucket Policy

Roboflow의 AWS role이 bucket에 직접 read access를 부여하도록 하려면 이 policy를 사용하세요.

```json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "RoboflowBucketAccess",
      "Effect": "Allow",
      "Principal": {
        "AWS": "<roboflow-role-arn>"
      },
      "Action": [
        "s3:ListBucket",
        "s3:GetBucketLocation",
        "s3:GetObject",
        "s3:GetObjectVersion",
        "s3:GetObjectTagging"
      ],
      "Resource": [
        "arn:aws:s3:::your-bucket-name",
        "arn:aws:s3:::your-bucket-name/*"
      ]
    }
  ]
}
```

다음을 `your-bucket-name` 를 실제 bucket 이름으로 바꾸고 `<roboflow-role-arn>` 를 Roboflow 담당자가 제공한 ARN으로 바꾸세요.

## Assume Role Trust Policy

이 trust policy를 계정의 IAM Role에 사용하면 Roboflow가 해당 role을 assume하여 bucket을 읽을 수 있습니다. 같은 role에 다음 policy를 [Custom IAM Policy](#custom-iam-policy) 위에 추가하여 bucket read access를 부여하세요.

```json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "<roboflow-principal-arn>"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "sts:ExternalId": "<your-external-id>"
        }
      }
    }
  ]
}
```

다음을 `<roboflow-principal-arn>` 새 role을 만든 후 AWS console에 표시되는 principal ARN으로 바꾸고, `<your-external-id>` 를 Roboflow에서 Credential을 만들 때 표시되는 External ID로 바꾸세요.
