파일 게이트웨이의 CloudWatch 상태 로그의 S3AccessDenied 오류를 해결하려면 어떻게 해야 하나요?

4분 분량
0

AWS Storage Gateway에서 네트워크 파일 시스템(NFS) 또는 서버 메시지 블록(SMB) 파일 공유에 액세스하고 싶습니다. 하지만 Amazon CloudWatch에서 가져온 파일 게이트웨이의 상태 로그에 S3AccessDenied 오류가 표시됩니다.

해결 방법

S3AccessDenied 오류를 해결하려면 파일 공유와 연결된 권한 정책을 검토하세요. 그런 다음 누락된 필수 권한을 추가하세요. Access Denied 오류가 발생한 시점을 기준으로 검토해야 하는 권한을 확인하세요.

  • 파일 공유를 생성하는 동안 파일 공유가 생성 중 또는 사용할 수 없는 상태에서 멈춤
  • 파일 공유에 파일 쓰기
  • 파일 공유에서 파일 읽기

파일 공유를 생성하는 동안 파일 공유가 생성 중 또는 사용할 수 없는 상태에서 멈춤

파일 공유를 생성하는 동안 생성 중 또는 사용할 수 없는 상태에서 멈출 때 Access Denied 오류가 발생할 수 있습니다. CloudWatch 로그는 다음 예시와 비슷합니다.

{
"severity": "ERROR",
"bucket": "AWSDOC-EXAMPLE-BUCKET",
"prefix": "",
"roleArn": "arn:aws:iam::123456789:role/service-role/StorageGatewayBucketAccessRolec6914add-b232-40dc-abef-4a9eeaaed8",
"source": "share-ABCD1234",
"type": "S3AccessDenied",
"operation": "s3:ListObjects",
"gateway": "sgw-ABCD1234",
"timestamp": "1597486809991"
}

다음 권한 설정을 검토하세요.

1.    파일 공유와 연결된 AWS Identity and Access Management(IAM) 역할을 확인하세요. 연결된 Amazon Simple Storage Service(Amazon S3) 버킷에 다음 권한이 있어야 합니다.

  • s3:GetBucketLocation
  • s3:ListBucket

2.    연결된 버킷의 버킷 정책을 검토하세요. 다음 권한에 필요한 액세스를 차단하는 명시적 거부 문("Effect": "Deny")이 없는지 확인하세요.

  • s3:GetBucketLocation
  • s3:ListBucket

3.    파일 게이트웨이가 있는 Amazon Virtual Private Cloud(Amazon VPC)가 Amazon S3 VPC 엔드포인트를 사용하는 경우, 엔드포인트 정책을 검토하세요. 정책에서 파일 게이트웨이가 S3 버킷 및 객체에 액세스할 수 있도록 허용하는지 확인하세요.

파일 공유에 파일 쓰기

파일 공유에 파일을 쓸 때 Access Denied 오류가 발생하는 경우, CloudWatch 로그는 다음 예시와 비슷합니다.

{
  "severity": "ERROR",
  "bucket": "AWSDOC-EXAMPLE-BUCKET",
  "prefix": "/test1",
  "roleArn": "arn:aws:iam::123456789:role/service-role/StorageGatewayBucketAccessRole0617b6ee-4809-48bc-b646-8dda9e9c32",
  "source": "share-ABCD1234",
  "type": "S3AccessDenied",
  "operation": "S3Upload",
  "gateway": "sgw-ABCD1234",
  "timestamp": "1597493322178"
}

다음 권한 설정을 검토하세요.

1.    파일 공유와 연결된 IAM 역할을 확인하세요. 연결된 Amazon S3 버킷에 다음 권한이 있는지 확인하세요.

  • s3:PutObject
  • s3:PutObjectAcl

2.    연결된 버킷의 버킷 정책을 검토하세요. 다음 권한에 필요한 액세스를 차단하는 명시적 거부 문("Effect": "Deny")이 없는지 확인하세요.

  • s3:PutObject
  • s3:PutObjectAcl

3.    파일 게이트웨이가 있는 Amazon VPC가 Amazon S3 VPC 엔드포인트를 사용하는 경우, VPC 엔드포인트 정책을 검토하세요. 정책에서 파일 게이트웨이가 S3 버킷 및 객체에 액세스할 수 있도록 허용하는지 확인하세요.

4.    연결된 S3 버킷이 AWS Key Management Service(AWS KMS)로 암호화된 경우, 암호화 키의 정책을 검토하세요. 키 정책은 파일 공유와 연결된 IAM 역할에 다음 권한을 부여해야 합니다.

  • kms:Decrypt
  • kms:Encrypt
  • kms:ReEncryptFrom
  • kms:ReEncryptTo
  • kms:GenerateDataKey
  • kms:DescribeKey

파일 공유의 IAM 역할과 AWS KMS 키를 검토하세요. 서로 다른 AWS 계정에 속해 있는 경우, 키 정책과 IAM 역할 정책 모두에서 이러한 권한을 설정해야 합니다.

파일 공유에서 파일 읽기

파일 공유에서 파일을 읽을 때 Access Denied 오류가 발생하는 경우, CloudWatch 로그는 다음 예시와 비슷합니다.

{
  "severity": "ERROR",
  "bucket": "AWSDOC-EXAMPLE-BUCKET",
  "prefix": "/test1",
  "roleArn": "arn:aws:iam::123456789:role/service-role/StorageGatewayBucketAccessRole0617b6ee-4809-48bc-b646-8dda9e9c32",
  "source": "share-ABCD1234",
  "type": "S3AccessDenied",
  "operation": "s3:HeadObject",
  "gateway": "sgw-ABCD12347",
  "timestamp": "1597488260202"
}

다음 권한 설정을 검토하세요.

1.    파일 공유와 연결된 IAM 역할을 확인하세요. 연결된 Amazon S3 버킷에 다음 권한이 있는지 확인하세요.

  • s3:GetObject
  • s3:GetObjectAcl

2.    연결된 버킷의 버킷 정책을 검토하세요. 다음 권한에 필요한 액세스를 차단하는 명시적 거부 문("Effect": "Deny")이 없는지 확인하세요.

  • s3:GetObject
  • s3:GetObjectAcl

3.    파일 게이트웨이가 있는 Amazon VPC가 Amazon S3 VPC 엔드포인트를 사용하는 경우, VPC 엔드포인트 정책을 검토하세요. 정책에서 파일 게이트웨이가 S3 버킷 및 객체에 액세스할 수 있도록 허용하는지 확인하세요. 4.    연결된 S3 버킷이 AWS KMS로 암호화된 경우, 암호화 키의 정책을 검토하세요. 키 정책은 파일 공유와 연결된 IAM 역할에 다음 권한을 부여해야 합니다.

  • kms:Decrypt
  • kms:Encrypt
  • kms:ReEncryptFrom
  • kms:ReEncryptTo
  • kms:GenerateDataKey
  • kms:DescribeKey

파일 공유의 IAM 역할과 AWS KMS 키를 검토하세요. 서로 다른 AWS 계정에 속해 있는 경우, 키 정책과 IAM 역할 정책 모두에서 이러한 권한을 설정해야 합니다. 참고: 다음은 IAM 정책의 예시입니다. 파일 공유에 버킷을 나열하고, 버킷(AWSDOC-EXAMPLE-BUCKET)에서 객체를 업로드, 다운로드 및 삭제하는 데 필요한 권한을 부여합니다.

{
  "Version": "2012-10-17",
  "Statement": [{
    "Action": ["s3:GetAccelerateConfiguration", "s3:GetBucketLocation", "s3:GetBucketVersioning", "s3:ListBucket", "s3:ListBucketVersions", "s3:ListBucketMultipartUploads"],
    "Resource": "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET",
    "Effect": "Allow"
  }, {
    "Action": ["s3:AbortMultipartUpload", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectVersion", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:PutObjectAcl"],
    "Resource": "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET/*",
    "Effect": "Allow"
  }]
}

관련 정보

Understanding CloudWatch Alarms(CloudWatch 알람 이해하기)

AWS 공식
AWS 공식업데이트됨 9달 전
댓글 없음

관련 콘텐츠