

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 예: WorkSpaces 애플리케이션 애플리케이션 Amazon S3 버킷 정책 교차 서비스 혼동된 대리자 방지
<a name="example-s3-bucket"></a>

Amazon S3 버킷에 데이터를 저장하는 경우 버킷이 혼동된 대리자 문제에 노출될 수 있습니다. 이로 인해 Elastic 플릿, 앱 블록, 설정 스크립트, 애플리케이션 아이콘, 세션 스크립트와 같은 데이터가 악의적인 행위자에게 취약해질 수 있습니다.

혼동된 대리자 문제를 방지하기 위해 `ELASTIC-FLEET-EXAMPLE-BUCKET`에 대한 Amazon S3 버킷 정책에 `aws:SourceAccount` 조건 또는 `aws:SourceArn` 조건을 지정할 수 있습니다.

아래 리소스 정책은 다음 중 하나로 혼동된 대리자 문제를 방지하는 방법을 보여줍니다.
+  AWS 계정 ID가 `aws:SourceAccount` 인
+ 전역 조건 컨텍스트 키 `aws:SourceArn`

WorkSpaces 애플리케이션은 현재 애플리케이션 아이콘에 대해 혼동된 대리자 방지를 지원하지 않습니다. 이 서비스는 VHD 파일 및 설정 스크립트만 지원합니다. 애플리케이션 아이콘에 추가 조건을 추가하려고 하면 아이콘이 최종 사용자에게 표시되지 않습니다.

다음 예제에서 버킷 정책은 소유자 계정의 WorkSpaces Applications Elastic 플릿 리소스만에 액세스하도록 허용합니다`ELASTIC_FLEET_EXAMPLE_BUCKET`.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ConfusedDeputyPreventionExamplePolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "appstream.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": [
                "arn:aws:s3:::{{ELASTIC-FLEET-EXAMPLE-BUCKET}}/vhd-folder/*",
                "arn:aws:s3:::{{ELASTIC-FLEET-EXAMPLE-BUCKET}}/scripts/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "{{your AWS 계정 ID}}"
                }
            }
        },
        {
            "Sid": "AllowRetrievalPermissionsToS3AppIconsForAppStream",
            "Effect": "Allow",
            "Principal": {
                "Service": "appstream.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::{{ELASTIC-FLEET-EXAMPLE-BUCKET}}/app-icons/*"
        }
    ]
}
```

------

`aws:SourceArn` 조건을 사용하여 특정 리소스에 대한 리소스 액세스를 제한할 수도 있습니다.

**참고**  
리소스의 전체 ARN을 모를 경우 또는 여러 리소스를 지정하려는 경우, ARN의 알 수 없는 부분에 대해 와일드카드(\*)를 포함한 `aws:SourceArn` 전역 조건 컨텍스트 키를 사용합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ConfusedDeputyPreventionExamplePolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "appstream.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": [
                "arn:aws:s3:::{{ELASTIC-FLEET-EXAMPLE-BUCKET}}/vhd-folder/*",
                "arn:aws:s3:::{{ELASTIC-FLEET-EXAMPLE-BUCKET}}/scripts/*"
            ],
            "Condition": {
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:appstream:{{us-east-1}}:{{111122223333}}:app-block/*"
                }
            }
        },
        {
            "Sid": "AllowRetrievalPermissionsToS3AppIconsForAppStream",
            "Effect": "Allow",
            "Principal": {
                "Service": "appstream.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::{{ELASTIC-FLEET-EXAMPLE-BUCKET}}/app-icons/*"
        }
    ]
}
```

------

`aws:SourceArn` 및 `aws:SourceAccount` 조건을 사용하여 특정 리소스 및 계정에 대한 리소스 액세스를 제한할 수도 있습니다.

**참고**  
리소스의 전체 ARN을 모를 경우 또는 여러 리소스를 지정하려는 경우, ARN의 알 수 없는 부분에 대해 와일드카드(\*)를 포함한 `aws:SourceArn` 전역 조건 컨텍스트 키를 사용합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ConfusedDeputyPreventionExamplePolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "appstream.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": [
                "arn:aws:s3:::{{ELASTIC-FLEET-EXAMPLE-BUCKET}}/vhd-folder/*",
                "arn:aws:s3:::{{ELASTIC-FLEET-EXAMPLE-BUCKET}}/scripts/*"
            ],
            "Condition": {
                "ArnLike": {
                "aws:SourceArn": "arn:aws:appstream:{{us-east-1}}:{{111122223333}}:app-block/*"
                },
                "StringEquals": {
                    "aws:SourceAccount": "{{your AWS account ID}}"
                }
            }
        },
        {
            "Sid": "AllowRetrievalPermissionsToS3AppIconsForAppStream",
            "Effect": "Allow",
            "Principal": {
                "Service": "appstream.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::{{ELASTIC-FLEET-EXAMPLE-BUCKET}}/app-icons/*"
        }
    ]
}
```

------